我正在使用命令express -e myAppName
来启动我的应用。
默认情况下,这会给我一个名为app.js
的文件,众所周知,该文件包含我所有的服务器逻辑,中间件等。
我尝试将app.js
的名称更改为server.js
,之后我收到了此错误。 Error: Cannot find module '../app'
所以我进入我的bin目录并在www
文件中我将var app = require('../app');
更改为var app = require('../server');
但是这并没有修复错误因此它会持续存在。
我对Web开发相对较新(3个月),并且使用MEAN堆栈将近2个月。我环顾了一会儿,并没有找到任何人试图改变我想要的文件名。
答案 0 :(得分:4)
您所做的是正确的(即更新bin \ www中的路径)。
但是,您应该使用npm start
通常,npm应用程序允许您在包json中指定一个命令,它将启动您的应用程序,这是第一个查看的地方。
对于快速生成,这应该如下所示:
{
"scripts" : {
"start" : "node bin/www"
}
}
如果您想要更改它并稍后传递参数,您只需要更新 package.json 文件,您的最终用户就不会受到影响。
无论您更改哪些文件名或参数, npm start
都会为您的程序用户提供一致的启动应用程序
在您的情况下,由于您在开发时使用nodemon自动重新启动,因此您应该按如下方式使用它:
nodemon bin/www
而不是修改你的入口点,你应该制作一个像这样的特殊脚本:
{
"scripts" : {
"start" : "node bin/www",
"devel" : "nodemon bin/www"
}
}
然后开始使用nodemon:
npm run devel
这样您的最终用户就不会从nodemon开发工具开始。