expressJS上的异步函数

dan*_*rum 0 javascript node.js express

我对Express上的异步功能有疑问.我从数据库中获取一些JSON,我收到以下错误:错误:发送后无法设置标头.

我已经阅读了一些关于它的内容,它似乎与具有完成状态或类似功能的功能有关.

我有以下代码,它崩溃了我的应用程序:

 router.get('/home', isAuthenticated, function(req, res){

    atendimentos.find({}, function(err, atendimentos) {
        if(!err){
            console.log(atendimentos);
            return res.json(atendimentos);
        }
    })


    res.render('home', {user: req.user}); 
})
Run Code Online (Sandbox Code Playgroud)

但后来我改为这段代码:

 router.get('/home', isAuthenticated, function(req, res){

    //Added async to the function
    atendimentos.find({}, async function(err, atendimentos) {
        if(!err){
            console.log(atendimentos);
            return res.json(atendimentos);
        }
    })


    res.render('home', {user: req.user}); 
})
Run Code Online (Sandbox Code Playgroud)

应用程序停止崩溃,但错误仍在继续.我不知道为什么.也许我可以得到一些帮助处理这个?

谢谢

Que*_*tin 6

res.json() 发送响应(格式为JSON).

res.render() 发送响应(使用其他格式化方法).

您不能向同一请求发送两个回复.

选一个.