routes.js
module.exports=function(app, upload){
var postingsController=require('../controllers/postings.server.controller');
app.post('/postings', postingsController.savePosting);
}controller.js
var multer=require('multer');
exports.savePosting=function(req, res, next){
// this diskstorage function is not at all executed
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads')
},
filename: function (req, file, cb) {
console.log(file);
cb(null, file.filename + '.' + 'jpg');
}
});
var upload = multer({ storage: storage });
upload.single('attachment');
res.json({ message: "success" });
}谁能告诉我到底哪一行上传文件。我是在主快件配置文件中写入multer磁盘存储配置,还是可以在任何地方写入。顺便说一下,我可以看到json的响应,这是从行
发布于 2016-01-06 20:56:36
通常,中间件是在任何实际路由处理程序之外创建和插入的。例如:
routes.js
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads')
},
filename: function (req, file, cb) {
console.log(file);
cb(null, file.filename + '.' + 'jpg');
}
});
var upload = multer({ storage: storage });
module.exports = function(app, upload) {
var postingsController = require('../controllers/postings.server.controller');
app.post('/postings',
upload.single('attachment'),
postingsController.savePosting);
};controller.js
exports.savePosting = function(req, res, next) {
// Use `req.file` to access attachment
if (req.file)
res.json({ message: "success" });
else // no file uploaded
res.json({ message: "failure" });
};发布于 2016-01-06 22:20:48
Multer是一种中间件,这意味着在大多数情况下,它是作为参数添加到您的路由中的。因此,实际语法是这样的:
app.post ("/postings", multer ({ ... }), postingsController.savePosting);
在对"/postings“的请求和为您完成所有文件工作的最后一个函数之间调用Multer。然后它将向您提供所有的信息
req.files["fileInputName"]
在下面的中间件中(您的函数也是一个“中间件”)。
https://stackoverflow.com/questions/34642210
复制相似问题