是Nodejs
的新手,在我的项目中,我试图上传Edit page
中的图像。
这里使用了两个条件,这些条件是:
如果用户选择图像文件新图像
upload
并将其保存在我的database.
否则保存不包含
upload file
的old_image数据。
这是我的代码:
router.post('/edit_coupon/:id', verifyToken, function(req, res, next){
let update_coupon = {};
var file = req.files.image;
if(Object.keys(req.files).length != 0) // if user select file
{
var random = Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000;
const image_name = random+file.name;
file.mv('public/assets/images/coupons/'+image_name, function(err){
if (err)
{
return res.status(500).send(err);
}
});
update_coupon.image = image_name;
}
else
{
update_coupon.image = req.body.old_image; // if user didnot select file
}
// code for update
...
...
...
});
当用户未选择显示错误的图片时,我的上述代码不起作用 喜欢
TypeError:无法将未定义或null转换为对象 在Function.keys()
答案 0 :(得分:1)
使用req.files
语句和if
运算符检查typeof
是否可用,并且它是一种对象,如下所示:
router.post('/edit_coupon/:id', verifyToken, function(req, res, next){
let update_coupon = {};
var file = req.files.image;
if(req.files != null && typeof req.files == 'object') {
if(Object.keys(req.files).length != 0) // if user select file
{
var random = Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000;
const image_name = random+file.name;
file.mv('public/assets/images/coupons/'+image_name, function(err){
if (err)
{
return res.status(500).send(err);
}
});
update_coupon.image = image_name;
}
else
{
update_coupon.image = req.body.old_image; // if user didnot select file
}
}
// code for update
...
...
...
});