微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node JS GET 通过 ID 抛出 404 但响应正确

如何解决Node JS GET 通过 ID 抛出 404 但响应正确

我有一个 GET 请求,我试图通过 ID 在我的数据库中查找电影。我在 Postman 中不断收到 404 错误,但是当我记录响应时,我得到了我需要的一切。我现在一直在兜圈子,所以我确定我只是错过了一些小事,但我不知道我在做什么,正在抛出 404。

这是在我的 App.js 中:

app.use('/myMovies',MovieRouter);

MovieRouter.js:

movieRouter
    .route('/:movie_id')
    .all(requireAuth)
    .all((req,res,next) => {
        const db = req.app.get('db')
        MovieService.getById(db,req.params.movie_id)
        .then(movie => {
            if(!movie) { // this runs fine
                return res.status(404).json({ error: `Movie doesn't exist`})
            }
            console.log('line 61: ',movie) // returns: line 61: { id: 867,title: 'Sliver',watched: false,user_id: 2 }
            res.movie = movie
            console.log('line 63: ',res.movie) // returns: line 63: { id: 867,user_id: 2 }
            next()
            return movie;
        })
        .catch(next)
    })

MovieService.js:

const MovieService = {
    getById(db,id) {
            return db.from('your_movie_list').select(
                'your_movie_list.id','your_movie_list.title','your_movie_list.watched','your_movie_list.user_id',)
            .where('your_movie_list.id',id).first()
        },}

解决方法

如果从数据库中找到电影,则需要将响应发送给客户端。

替换

await using var client = new ServiceBusClient("<connectionstring>");
ServiceBusReceiver receiver = client.CreateReceiver("<queuename>");

ServiceBusReceivedMessage receivedMessage = await receiver.ReceiveMessageAsync();
string body = receivedMessage.Body.ToString();
Console.WriteLine(body); //prints {"title":"hello"}

作者:

console.log('line 61: ',movie) // returns: line 61: { id: 867,title: 'Sliver',watched: false,user_id: 2 }
res.movie = movie
console.log('line 63: ',res.movie) // returns: line 63: { id: 867,user_id: 2 }
next()
return movie;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。