我是node.js的新手,并且难以使用pm2妖魔化this应用。
当我转到/srv/myapp
并运行yarn start
时该应用运行正常,但当我尝试通过转到/srv/myapp
并运行pm2 start index.js
我看到这个过程似乎已经开始了:
[PM2] Starting /srv/myapp/index.js in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ index │ 0 │ fork │ 14528 │ online │ 0 │ 0s │ 0% │ 16.0 MB │ root │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
但是前端没有响应(相反,我得到502 errors
并且节点服务器没有按预期侦听端口3000
(fuser 3000/tcp
没有返回结果)。
这里有什么问题?我该如何解决?
答案 0 :(得分:1)
通过以下命令检查pm2日志:<ion-nav-bar>
</ion-nav-bar>
<ion-view>
<ion-nav-title align-title="center">
<div style="float:none;width:100%;text-align:center;" class="whipsterTitle">APP REGISTRATION</div>
</ion-nav-title>
<ion-nav-bar-button>
</ion-nav-bar-button>
<ion-content>
...
</ion-content>
</ion-view>
如果没有错误,则说明您的应用没有问题。
答案 1 :(得分:0)
pm2
使用节点启动您的应用,一个问题是它没有提供任何日志记录或输出,例如通过其他方式启动应用(例如node index.js
),所以它没有&#如果出现任何问题,请告诉您。
我始终认为在node
之前使用pm2
开始测试您的应用是个不错的主意。
鉴于node index.js
会导致错误:import bb from 'bluebird';SyntaxError: Unexpected token import
,这听起来好像您正在使用ES6导入功能not supported by Node by default。我怀疑Yarn要么启用这些功能,要么将ES6代码转换为ES5,以便在执行yard start
时运行Node,但我不熟悉Yarn要知道。
可能是您指向了错误的文件,并且已经创建了一个已编译的文件dist.js
(已作为示例)Yarn正在使用不透明的start
快乐地运行命令。
修改:查看来源后,它似乎正在使用something called babel-node
。请参阅start script in the package.json:
"scripts": {
"start": "babel-node index.js",
pm2
不知道用这个babel节点的东西运行你的index.js,即使它确实babel-node强烈建议你不要在生产中使用babel-node(可能是你正在使用pm2
):
不适合生产使用 你不应该在生产中使用babel-node。由于高速缓存存储在存储器中,因此存储器使用率很高,这是不必要的。您还将始终遇到启动性能损失,因为整个应用程序需要动态编译。
使用Babel查看示例Node.js服务器,了解如何在生产部署中使用Babel。
还有关于ES6模块加载的说明:
ES6样式的模块加载可能无法按预期运行 由于技术限制,在&gt; babel节点REPL中不完全支持ES6样式的模块加载。
我强烈建议你添加一个build
脚本来制作一个&#39;发行版&#39;转换版本与babel并部署!
"scripts": {
"start": "babel-node index.js",
"build": "babel index.js --out-file index-dist.js
或者沿着这些方向行动,然后运行yarn build
(或yarn run build
?),然后pm2 start index-dist.js
。