代码之家  ›  专栏  ›  技术社区  ›  Eddy sapata

当我在下一个中间件函数中包含res.send时,为什么图像没有渲染

  •  2
  • Eddy sapata  · 技术社区  · 8 年前

        var express = require('express');
        var app = express();
    
        app.get('/', function(req, res) {
            res.send("Default");
        });
    
        var Aperson = function(req, res, next) {
            console.log("File is downloaing");
            res.download(__dirname + '/instagram_5.jpg');
            next();
        }
        app.get("/download", [Aperson], function(req, res) {
            res.send("AMan");
        });
        app.use(function(req, res) {
            res.status(404).send("Sorry cant find that");
        });
    
        app.listen(4000, function() {
            console.log("App started on port 4000");
        });
    
    3 回复  |  直到 8 年前
        1
  •  1
  •   ajit-jain    8 年前

    自从 res.download(__dirname + '/instagram_5.jpg') 异步进程是 next() res.download 正在后台工作。

    所以你不需要打电话 res.send() 下一个() res.download() 完成后,它将自动响应客户端。

        2
  •  0
  •   Bharathvaj Ganesan    8 年前

    使用 res.sendFile() 从…送达文件

    /* Public static directory */
    app.use(express.static(__dirname + '/public'));
    /* Serve image for example inside the assets folder*/
    app.get('/download', function(req, res){       
          res.sendFile('/assets/image.png');      
    });
    
        3
  •  0
  •   user7110739 user7110739    8 年前
    var express = require('express');
    var app = express();
    /* Public directory */ 
    app.use("/images", express.static(__dirname + '/public/images'));
    app.get('/', function(req, res) {
        res.send("Default");
    });
    
    var Aperson = function(req, res, next) {
        console.log("File is downloaing");
        res.download(__dirname + '/instagram_5.jpg');
        next();
    }
    app.get('/download', function(req, res, err){
      if (err) {
        return res.send();
      }
      var file = __dirname + '/images/image.png'; //here comes your path 
      var filename = path.basename(file);
      var mimetype = mime.lookup(file);
      res.setHeader('Content-disposition', 'attachment; filename=' + filename);
      res.setHeader('Content-type', mimetype);
      var filestream = fs.createReadStream(file);
      filestream.pipe(res);
    });
    
    app.use(function(req, res) {
        res.status(404).send("Sorry cant find that");
    });
    
    app.listen(4000, function() {
        console.log("App started on port 4000");
    }); 
    
    推荐文章