当我从我的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上成功运行,但是手动启动服务器会遇到同样的问题。
答案 0 :(得分:1)
如果您定义路径,例如,对于模板引擎,如:
<![CDATA[$P{person}.getFirstName()]]>
使用app.set('views', './views');
,它会查找您启动应用的目录。
您需要使用.
之类的:
__dirname
以搜索脚本文件夹中的views目录。正如此处所述:What is the difference between __dirname and ./ in node.js?