if语句为什么不能正常运行?

时间:2019-10-17 01:15:37

标签: javascript node.js express

我对开发还比较陌生,不熟悉行话或如何正确提问。我正在尝试创建放置请求以使用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");
    }
});

});

3 个答案:

答案 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");
}
});

});