运行节点仅在app目录中正常运行

时间:2016-09-24 08:46:36

标签: node.js

当我从我的app目录运行节点时,即:

/var/www/html/
node server.js

网站正常运行。

当我尝试从不同的目录启动节点时,它会运行,但是根目录错误:

#(not in /var/www/html)
node /var/www/html/server.js

正在执行的是正确的文件,但所有路径都搞砸了。这是一个错误,例如:

GET /auth/login 500 32.511 ms - 2206
Error: Failed to lookup view "login" in views directory "/home/ec2-user/views"

错误并不奇怪,因为在

中找不到视图“login”
/home/ec2-user/views

但在

/var/www/html/views

如何更正此行为?

澄清:

我问这个问题,因为我试图永远设置在upstart上运行节点。 该服务在upstart上成功运行,但是手动启动服务器会遇到同样的问题。

1 个答案:

答案 0 :(得分:1)

如果您定义路径,例如,对于模板引擎,如:

<![CDATA[$P{person}.getFirstName()]]>

使用app.set('views', './views'); ,它会查找您启动应用的目录。

您需要使用.之类的:

__dirname

以搜索脚本文件夹中的views目录。正如此处所述:What is the difference between __dirname and ./ in node.js?