我需要能够启动我的Node应用程序,即使用其他工作目录中的Sails:
通常:node app
我需要什么:node myfolder/app
第二种方式提升服务器,但是,没有任何资产可以工作。看起来他正在使用我当前的目录作为资产文件夹(没有尝试api或其他任何东西),但是服务器被取消了。
发生了什么,是访问资源,给我一个Not Found
。
这是一个问题,还是我做错了什么?
解释我的目标:
我有一个包含多个节点应用的文件夹。我使用pm2来启动大量进程,因此,我的文件夹结构如下:
Apps
|- processes.json
| App1
|-...
| App2
|-...
我需要从Apps
或App1
文件夹中的App2
文件夹非启动所有应用。但是,它与Sails.js无法正常工作。我试图从另一个工作目录中只运行一个应用程序,但是会出现同样的问题。
答案 0 :(得分:4)
实际上,如果您要通过流程管理器运行,更好的答案是更改Sails应用程序主文件本身中的目录。也就是说,在App1/app.js
文件的顶部,放置:
process.chdir(__dirname);
这样你就不会开始一个不同的流程,流程管理员将能够以预期的方式监控输出,日志等。
不确定默认情况下这在Sails中是否有用,但我们会调查它!
答案 1 :(得分:2)
Sails确实希望您从app目录中解除服务器。但是,您始终可以编写一个包装器脚本来临时更改工作目录:
process.chdir('App1');
require('child_process').exec('node app.js');
将其作为runApp1.js
保存在您的主要Apps目录中,然后使用您的流程管理器来运行它。