[英]Image upload isn't working using multer
I setup multer like this 我像这样设置multer
let multer = require('multer');
let apiRoutes = express.Router();
let UPLOAD_PATH = '../uploads';
let storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, UPLOAD_PATH);
},
filename: (req, file, cb) => {
cb(null, file.fieldname + '-' + Date.now());
}
});
let upload = multer({ storage: storage });
and in route I am getting data and an image and use multer like! 在路线上,我正在获取数据和图像,并使用像multer一样!
apiRoutes.post('/update', passport.authenticate('jwt', { session: false }), (request, response) => {
let record = {
name: request.body.name,
location: request.body.location,
about: request.body.about,
userid: request.body.userid,
avatar: request.body.filename
};
let userData = {
name: request.body.name
};
if (request.body.filename) {
upload(request, response, (error) => {
});
}
profile.findOneAndUpdate({ userid: request.body.userid }, record, {new: true}, (error, doc) => {
if (error) response.json(error);
user.findOneAndUpdate({ _id: request.body.userid }, record, (error, result) => {
if (error) throw error;
response.json(doc);
});
});
});
What is happening with this code is that when I do not send an image to backend then I get data from front end and store it into database. 这段代码正在发生的事情是,当我不将图像发送到后端时,我会从前端获取数据并将其存储到数据库中。 But when I send image along side data then it return
POST /api/1.0/profile/update 401 0.396 ms - -
. 但是当我沿着侧面数据发送图像时,它将返回
POST /api/1.0/profile/update 401 0.396 ms - -
。
It means I am not getting any data at all. 这意味着我根本没有任何数据。 Whats wring with the code here?
这里的代码是什么?
You can't use Multer in your /update route. 您不能在/ update路由中使用Multer。 Use Multer in your router like this:
像这样在路由器中使用Multer:
var upload = multer({ dest: 'uploads/' })
apiRoutes.post('/profile', upload.single('image'), function (req, res, next) {
// Uploaaded
})
if you add it and still can't get our file, you should update your form with this parameter: enctype="multipart/form-data"
如果添加它仍然无法获取我们的文件,则应使用以下参数更新表单:
enctype="multipart/form-data"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.