Почему это не так, если заявление работает? - PullRequest
0 голосов
/ 17 октября 2019

Я относительно новичок в разработке и не знаком с языком или как правильно задавать вопросы. Я пытаюсь создать отложенный запрос на обновление изображения профиля с помощью 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 голосов
/ 17 октября 2019

Проблема в том, что вы сравниваете req.files со строкой "null". Вместо этого вы должны сравнить с типом null.

. Также вы можете проверить наличие undefined. Что вы можете сделать, это написать что-то вроде этого:

if (req.files) { ... }

Таким образом, вы будете проверять, не является ли req.files null или undefined (а также false, но я не думаю, что эта переменная должна получить логическое значение, но вы никогда не знаете ...)

Надеюсь, мой ответ был полезен

0 голосов
/ 17 октября 2019

Попробуйте это

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

});

0 голосов
/ 17 октября 2019

Я думаю, вам просто нужно сделать:

if(req.files) {

Это будет оцениваться как правдивое, если files не undefined null false или другие значения Falsey.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...