【问题标题】:Infinite creation of node js app without any changes无限创建节点 js 应用程序,无需任何更改
【发布时间】:2020-09-11 01:51:38
【问题描述】:

在这里,我只是创建目录并在该目录中写入文件。当我保存它时,nodemon app.js 会被自动调用并进入无限循环。
虽然我没有更改代码中的任何内容。

fs.mkdir("asyncFile",()=>{
    console.log("File Created");
});
fs.writeFile("asyncFile/hey.js","",()=> {
    console.log("async.js created");
});
console.log("And thats the end baby");

输出

And thats the end baby
File Created
async.js created

但事情就是这样。当我手动运行 node app.js 时,它会被调用。
我是 node.js 的新手,请帮助我理解这个过程。

【问题讨论】:

  • 你正在更改目录中的文件,这告诉 nodemon 重新启动。
  • 您的nodemon 命令是什么?您是在告诉它要观看/排除哪些文件吗?
  • @JasonGoemaat 我们不应该在目录中进行更改吗?我们还需要在哪里进行更改?
  • @zero298 我的 nodemon 命令是 nodemon app.js,在 app.js 中它只是创建一个目录并在其中写入一个文件
  • 嗯,不要写入您的项目源文件夹,它应该在它之外,这就是为什么标准是 src/ 用于源文件,data/ 用于数据 logs/ 用于日志等'不是在真实脚本中编写脚本,也不是在生产中运行 nodemon

标签: node.js fs


【解决方案1】:

Nodemon 监视项目文件夹,并在发生更改时重新运行您的应用程序。当您保存更改时 nodemon 重新启动节点,当重新启动时再次写入文件,并且 nodemon 再次在节点上启动,所以....有循环!

在“脚本”部分的package.json 文件中设置以下行:

"dev": "nodemon --ignore './asyncFile/' ./app.js"

之后,只需使用 npm run dev 运行您的项目

我使用“dev”作为关键字来执行,但你可以设置任何你想要的词。

【讨论】:

  • 好的,这是一个诊断,但你不认为答案也应该包括修复吗?
  • 好的,我会设置的!
猜你喜欢
  • 2022-01-12
  • 1970-01-01
  • 2021-07-31
  • 2022-01-23
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
相关资源
最近更新 更多