【发布时间】:2012-02-29 18:21:46
【问题描述】:
我有一个 node.js 脚本,它使用 WriteStream 对文件进行一些记录。在某些事件上,我想停止执行脚本,即警告登录并在此之后立即退出。作为异步的 node.js 不允许我们直接这样做:
#!/usr/local/bin/node
var fs = require('fs');
var stream = fs.createWriteStream('delme.log', { flags: 'a' });
stream.write('Something bad happened\n');
process.exit(1);
此脚本不会将消息附加到 delme.log,而不是对该文件执行任何操作。处理“退出”事件和刷新不起作用。到目前为止,在退出之前写入最后一条日志消息的唯一方法是将process.exit(1) 包装在setTimeout() 中:
#!/usr/local/bin/node
var fs = require('fs');
var stream = fs.createWriteStream('delme.log', { flags: 'a' });
stream.write('Something bad happened\n');
setTimeout(function(){
process.exit(1);
}, 30);
但是,在这种形式下,它不会立即停止脚本执行,并且脚本将在关键事件发生后运行一段时间。所以我想知道是否还有其他方法可以通过日志消息退出脚本?
【问题讨论】:
标签: node.js