【发布时间】:2018-05-27 17:29:54
【问题描述】:
当我尝试上传文件时,我正在使用 multer 上传文件,它显示错误以下是我的代码
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '../public/uploads/')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
});
var upload = multer({ storage: storage });
我在 ejs 视图中的表单是
<form action="class/<%= record.Class_Name %>/detial" method="post" enctype="multipart/form-data">
<input type="text" name="UploaderName">
input type="text" name="Title" >
<input type="file" name="ThesisFile">
<button type="submit">Choose File</button>
</form>
我的路线代码是
router.post('/Class/:name/detial' , isLoggedIn , upload.single('ThesisFile') , function(req , res , next) {
var Name = req.body.UploaderName;
var Title = req.body.Title;
var file = req.body.ThesisFile;
var thesis = {
Submitted_By: Name,
Title : Title,
File: file
};
ClassModel.findOne({ Class_Name : req.params.name } , function(err , record) {
record.ClassFiles.push(thesis);
record.save().then(function(record) {
req.flash('sucess_msg' , 'Thesis Added Sucessfully');
res.render('class' , {
"record" : record
});
});
});
});
【问题讨论】:
-
问题来自您的表单
action。 -
应该是什么?
-
我认为传递给动作的路由是错误的。
-
它在没有 multer 的情况下将数据传递给 db
标签: node.js mongodb express multer