我对开发还比较陌生,不熟悉行话或如何正确提问。我正在尝试创建放置请求以使用express-fileupload更新配置文件图像。如果我不包括第一个if语句,那么控制台将返回null,并且不会呈现或保存任何内容。就这样,应用程序崩溃了。我希望简单地在此处发布代码就足以使某人看到问题所在。提前感谢您帮助新手。
router.put("/artistsbe/:id", middleware.isLoggedIn, function(req, res){
Artists.findByIdAndUpdate(req.params.id, req.body, function(err, artist){
if(req.files != "null"){
let image = req.files.artistImage;
image.mv("./public/images/" + req.files.artistImage.name, function(err){
if(err){
console.log(err);
}
});
} else {
res.redirect("back");
}
});
});
答案 0 :(得分:0)
我认为您只需要这样做:
if(req.files) {
如果files
不是undefined
null
false
或其他虚假值,则此结果为真。
答案 1 :(得分:0)
您遇到的问题是,您正在将req.files
与字符串"null"
进行比较。相反,您应该与类型null
进行比较。
此外,您可能还需要检查undefined
。您可以做的是这样写:
if (req.files) { ... }
这样,您将检查req.files是否既不是null
也不是undefined
(还有false
,但是我不认为此变量应该接收布尔值,但是你永远不会知道...)
希望我的回答很有帮助
答案 2 :(得分:0)
尝试一下
router.put("/artistsbe/:id", middleware.isLoggedIn, function(req, res){
Artists.findByIdAndUpdate(req.params.id, req.body, function(err, artist){
if(req.files){
let image = req.files.artistImage;
image.mv("./public/images/" + req.files.artistImage.name, function(err){
if(err){
console.log(err);
}
});
} else {
res.redirect("back");
}
});
});