从另一个目录cwd运行带有Sails的节点

时间:2014-03-21 16:27:12

标签: javascript node.js command-line sails.js

我需要能够启动我的Node应用程序,即使用其他工作目录中的Sails:

通常:node app

我需要什么:node myfolder/app

第二种方式提升服务器,但是,没有任何资产可以工作。看起来他正在使用我当前的目录作为资产文件夹(没有尝试api或其他任何东西),但是服务器被取消了。

发生了什么,是访问资源,给我一个Not Found

这是一个问题,还是我做错了什么?

解释我的目标:

我有一个包含多个节点应用的文件夹。我使用pm2来启动大量进程,因此,我的文件夹结构如下:

Apps
 |- processes.json

 | App1
   |-...

 | App2
   |-...

我需要从AppsApp1文件夹中的App2文件夹启动所有应用。但是,它与Sails.js无法正常工作。我试图从另一个工作目录中只运行一个应用程序,但是会出现同样的问题。

2 个答案:

答案 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目录中,然后使用您的流程管理器来运行它。