这是我的upload.js代码:
var multer = require('multer');
var express = require('express');
const router = express.Router();
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads');
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now());
},
});
var upload = multer({ storage: storage });
router.post('/', upload.single('file'), (req, res, next) => {
const file = req.file;
if (!file) {
const error = new Error('Please upload a file');
error.httpStatusCode = 400;
return next(error);
}
res.send(file);
});
module.exports = router;
有人能说出Router.Get是什么吗? 这样我就可以在响应中得到一个图像。
您可以简单地静态地为uploads
-文件夹提供服务。 通过这样做,您不需要实际的get
-处理程序,而是定义express.statice
-中间件
app.use(express.static('uploads'));
现在,客户机只需执行对http://yourserver/
的请求,文件将自动提供。
EOL的答案是好的,但是如果您需要维护访问权限,控制器可能看起来是这样的:
res.writeHead(200,{'content-type':'image/jpg'});
fs.createReadStream('./image/demo.jpg').pipe(res);