如果文件不存在则创建文件,然后将日志写入其中

Create file if it does not exist, then write logs to it

尝试建立一个环境:

server.js: 创建服务器时,它会检查一系列文件是否存在:[api.log、error.log、access.log],如果它们还不存在,它将创建它们。

routes/api.js: 我可以使用在启动时创建的文件,直到 api 错误,记录错误。

很多建议都围绕 fs.exists() 展开,现在已弃用。

我正在努力拼凑事件的顺序,是否应该 server.js 检查文件,采取相应行动,然后打开流?或者必须 routes/api.js 打开流并在每次出错时写入它?

我正在使用 Node v5.0.0

您永远不应该检查文件是否存在,然后根据文件是否存在来执行某些操作。这是一种反模式:在您检查文件是否存在和执行下一个操作之间,其他一些进程可能会创建或删除文件。 (即使是 *Sync 方法——它们本身就是反模式——也容易受到这个问题的影响。)

相反,您应该做任何您需要做的事情并适当地处理错误。

在这种情况下,您可以通过指定 flagscreateWriteStream 为您完成工作。您可能想要:

  • 'w' - Open file for writing. The file is created (if it does not exist) or truncated (if it exists).
  • 'a' - Open file for appending. The file is created if it does not exist.

实际上,您应该使用 a logging library