Node.js 返回后执行函数

Node.js 返回后执行函数,node.js,express,Node.js,Express,我将nodejs与expressjs一起用于我的api 我想在调用res.json()之后调用一个函数 例如,api向客户机获取数据,但我想记录该操作,但不需要让客户机等待请求响应,直到api保存日志 module.exports = { getAll:async function(req,res){ ////fetch data from db res.json({success:true,data:data}); module.exports.logthis();

我将nodejs与expressjs一起用于我的api

我想在调用res.json()之后调用一个函数

例如,api向客户机获取数据,但我想记录该操作,但不需要让客户机等待请求响应,直到api保存日志

module.exports = {
  getAll:async function(req,res){
    ////fetch data from db
    res.json({success:true,data:data});
    module.exports.logthis();
    return;
  },
  logthis: async function ()
  {
    //save log
  }
}
返回后日志不会被中断,这是真的吗;叫什么名字?
还有一种更好的模式可以做到这一点,比如事件队列侦听器,以便我将该请求抛出到池中,并在可能的情况下执行该请求?

您只需使用回调或承诺即可。 函数(数据、回调){ DB.find(……) 回调(错误,数据) //在这里做其他事情

}使用

res.json({success:true,data:data}).then(function(){
  //Enter your code here. res.json() has finished.
});

仅当将
return
语句放在脚本前面时,向客户端发送json响应或使用
return
语句不会阻止脚本执行
logthis
函数

module.exports = {

    getAll:async function(req,res){

        //fetch data from db

        res.json({success:true,data:data});

        this.logthis(data);

        return;
    },

    logthis: function (data) {
        // log data to file here
    }

}

请记住,
async
函数与
wait
语句一起工作,如果
getAll
中没有异步函数,则无需使用
async
关键字

您在找什么?@raina77ow不,我不想等待logthis,我希望函数在调用res.json后立即返回,cuz客户端不必等待日志被保存。
我想在调用res.json()之后调用函数。
-在这种情况下,“after”是什么意思?是否要在返回
json()
后调用
logthis
?使用
等待
。是否要在之后立即调用
logthis
?在调用
json()
之前执行此操作。还要别的吗?澄清。@raina77ow我不希望客户端一直等待请求响应,直到logthis完成,所以我不能使用wait