我刚开始使用nodester作为nodejs应用程序paas,我遇到了一些问题。
让我澄清我的本地机器运行节点0.7而在nodeter上我使用节点0.6.17
以下代码位于我的server.js文件中,由平台执行:
app.get('/static', function(req,res) {
res.sendfile('views/myFile.html',function(error){
if(err)
res.send('An error has occurred');
});
});
app.get('/', function(req,res){
res.render('index.jade');
});
其余代码是Express.js生成的代码 特别是配置
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));
app.set('view engine', 'jade');
app.set('view options', {layout: 'layout.jade'}); //added by me but with no results
如果我在本地计算机上运行此配置,一切正常,'/'路由,完美地将index.jade视图发送到正确的layout.jade视图中。 '/ static'路由,发送index.html没有问题。
但是,如果我在nodester上运行此代码(在编辑package.json并要求节点0.6之后) 我得到了不同的结果:
'/'路由不呈现layout.jade,而只呈现index.jade。这很奇怪,因为我刚刚编辑了由express!
'/ static'路由只会抛出一个错误,我可以捕获回调。所以不发送html文件。
我哪里错了?我可能错过了什么......有什么想法吗?
答案 0 :(得分:1)
在nodester中,节点进程可能正在从不同的目录运行,使process.cwd()
不等于应用程序的根目录。
要解决此问题,请使用以下代码
app.get('/static', function(req,res) {
res.sendfile(__dirname + '/views/myFile.html',function(error){
if(err)
res.send('An error has occurred');
});
});
如上所述的类似问题。所以,请检查并告诉我。