产生一个Node.js任务来自己运行

对不起,如果这是一个基本的问题。 我刚刚开始做Node.js编程的第三周! 我环顾四周,没有看到具体的答案。 也许这只是假设回答关于child_process.spawn/fork ,那些比我更了解这些东西的人。

我有一个Node / Express应用程序,我想要接受一个HTTP请求,保存一些数据到Mongo,返回成功/错误,但是…同时启动一个进程来获取一些数据,并做针对Web API的查找。 我想将这些数据保存回Mongo,但是不需要将这些数据传回给HTTP客户端。 (我可能会在某个地方logging那个调用的成功/失败。)

如何启动第二个任务来独立于主要请求运行,而不是使响应等待它完成?

第二个任务也将被写入Node.js. 如果可能的话,我希望它只是在同一个文件中的另一个function。

提前致谢!

我不明白你为什么需要产生另一个过程。 在节点中,您不限于http请求生命周期来运行像其他框架一样的东西。 这应该做到这一点:

 function yourHandler(req, res, next) { dataAccess.writeToMongo(someData, function(err, res) { var status = err ? 500 : 200; // write back to response already! res.status(status); res.end(); // do not completely terminate yet // kick off web api call apiClient.doSomething(); }); }