代码之家  ›  专栏  ›  技术社区  ›  Ivan Seidel

从另一个目录cwd运行节点和Sails

  •  1
  • Ivan Seidel  · 技术社区  · 12 年前

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

    通常情况: node app

    我需要什么: node myfolder/app

    第二种方法提升了服务器,但是,所有资产都无法工作。看起来他正在使用我的当前目录作为资产文件夹(没有尝试api或其他任何方法),但服务器get被解除。

    所发生的是,访问资源,给我一个 Not Found .

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

    解释我的目标:

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

    Apps
     |- processes.json
    
     | App1
       |-...
    
     | App2
       |-...
    

    我需要从 Apps 文件夹 来自 App1 App2 文件夹然而,它在Sails.js中无法正常工作。我试图从另一个工作目录中只运行一个应用程序,但同样的问题也出现了。

    2 回复  |  直到 12 年前
        1
  •  4
  •   sgress454    12 年前

    事实上,如果你要通过流程管理器运行,最好的解决方案是更改Sails应用程序主文件本身中的目录。也就是说,在 App1/app.js 文件,放入:

    process.chdir(__dirname);
    

    这样,您就不会启动不同的流程,流程管理器将能够以预期的方式监视输出、日志等。

    不确定默认情况下,这是否会是赛尔斯的一件好事,但我们将对此进行调查!

        2
  •  3
  •   sgress454    12 年前

    Sails确实希望您从应用程序目录中提升服务器。但是,您始终可以编写包装脚本来临时更改工作目录:

    process.chdir('App1');
    require('child_process').exec('node app.js');
    

    将其保存在主应用程序目录中 runApp1.js ,并使用流程管理器来运行。

    推荐文章