假设我将模块handler.js编写为Express.js中间件:
var info = {};
infohandler.setinfo = function(i){ info[i] = Math.random(); }
infohandler.saveinfo = function(){ fs.writeFileSync("info.json", info); }
function handler(req, res, next){ // here are some operation call to infohandler according to req. }
module.exports = handler;
在app.js中我导入了这个handler.js:
var handler = require("handler");
我想在服务器关闭之前将一些信息保存到文件中。我怎么能这样做?
答案 0 :(得分:2)
使用process.on
绑定到exit
事件。在正常关闭时调用此事件:
process.on('exit', function () {
// your clean up code
});
如果要捕获特定信号(例如使用kill(1)默认发送的SIGTERM)绑定到信号名称:
process.on('SIGTERM', function () { /* ... */ });
请注意,这将是disable the default action(关闭)。务必手动拨打process.exit
。