0

我刚开始使用 nodester 作为 nodejs 应用程序 paas,我遇到了几个问题。

让我澄清一下,我的本地机器运行节点 0.7,而在 nodester 上我使用的是节点 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 生成的 layout.jade 文件!

  2. '/static' 路由只是抛出一个错误,我可以用回调来捕获它。所以没有发送html文件。

我哪里错了?我可能错过了一些东西..有什么想法吗?

4

1 回答 1

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

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

于 2012-06-30T12:35:49.517 回答