在Nodester上使用expressjs的问题

时间:2012-06-30 12:28:43

标签: node.js express nodester

我刚开始使用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之后) 我得到了不同的结果:

  1. '/'路由不呈现layout.jade,而只呈现index.jade。这很奇怪,因为我刚刚编辑了由express!

  2. 生成的layout.jade文件
  3. '/ static'路由只会抛出一个错误,我可以捕获回调。所以不发送html文件。

  4. 我哪里错了?我可能错过了什么......有什么想法吗?

1 个答案:

答案 0 :(得分:1)

回答2

在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');
  });
});

回答1

如上所述的类似问题。所以,请检查并告诉我。