Node.js 如何在生产模式下运行express generator创建的应用程序?

Node.js 如何在生产模式下运行express generator创建的应用程序?,node.js,express,npm,npm-start,dev-to-production,Node.js,Express,Npm,Npm Start,Dev To Production,我正在使用Express application generator,它建议以以下方式启动服务器: $ DEBUG=myapp:* npm start 这可以工作,我的应用程序开始在指定端口上侦听 然而,DEBUG让我想知道:这是在“dev”模式下运行的吗?如果是这样,在服务器上部署时如何在生产模式下运行它 如果我只运行npm start,它会卡住: $ npm start > myapp@0.0.0 start /home/aalaap/projects/myapp > nod

我正在使用Express application generator,它建议以以下方式启动服务器:

$ DEBUG=myapp:* npm start
这可以工作,我的应用程序开始在指定端口上侦听

然而,
DEBUG
让我想知道:这是在“dev”模式下运行的吗?如果是这样,在服务器上部署时如何在生产模式下运行它

如果我只运行
npm start
,它会卡住:

$ npm start

> myapp@0.0.0 start /home/aalaap/projects/myapp
> node ./bin/www
没有一句话说服务器正在监听,应用程序无法访问

如果我运行
node app.js
,它会立即退出,而没有任何输出

我觉得在调试模式下运行应用程序可能不是生产的理想选择,但如果我没有正确理解这一点,我可能错了


编辑:在服务器上,有一个cron条目,用于在服务器崩溃时每隔一段时间重新启动服务器。如果上述方法是运行它的唯一方法,我是否应该修改cron命令以包含
DEBUG
部分?

使用NODE\u ENV环境变量:

$ NODE_ENV=production npm start 
您提到的调试变量仅用于日志输出,并配置您希望在日志中看到的内容


如果没有看到任何代码并对其进行调试,就无法回答应用程序挂起的原因。我毫不怀疑这与环境变量有关

使用以下命令:

npm启动问题已解决: 运行以下命令:

将应用程序名称替换为 你的应用程序名


设置DEBUG=app name:*&npm start

这也会导致节点挂起。似乎除非设置了
DEBUG
变量,否则Node无法运行服务器。代码中没有任何内容,因为它是默认的express generator脚手架。我没有添加任何其他内容。请求的端口是否可用?是的,该端口是免费的,否则将出现
EADDRINUSE
错误或其他问题。我已经解决了。服务器没有挂起,它只是没有输出“正在侦听…”状态文本,因为它只在调试模式下这样做。这使你的答案正确。