0

私はnodejsアプリケーションpaasとしてnodesterを使い始めたばかりで、いくつかの問題に足を踏み入れました。

ノードスターでノード0.6.17を使用しているときに、ローカルマシンがノード0.7を実行していることを明確にします

次のコードは、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 のみをレンダリングします。エクスプレスによって生成された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 に答える