2013-10-27 12 views
5

私は初めてのExpressアプリケーションを実行しようとしていますが、私のWebページを表示できないようです。私は次のコードを持っている:ここでは NodejsでExpressと一緒に表示するindex.htmlを取得できません

var fs = require("fs"); 
var config = JSON.parse(fs.readFileSync("files/config.json")); 
var host = config.host; 
var port = config.port; 
var express = require("express"); 

var app = express(); 

app.use(app.router); 
app.use(express.static(__dirname + "/public")); 

app.get("/", function(request, response){ 
    response.send("hello!"); 
}); 

app.listen(port, host); 
console.log("Listening on port" + port); 

がある私のディレクトリツリーを

nodejs/ 
    js/ 
     javascript.js 
    public/ 
     index.html 

私は、私が実行したときに、私は、ブラウザでの私の"Hello!"応答を取得するため、サーバーが稼働している知っている127.0.0.01:1337

しかしとき私はウェブページ1227.0.0.1:1337/index.htmlを入力してみてください。がブラウザに表示されます。

それは私のgetメソッドのname値では間違っていると推測されますが、それが何であるか、どのように修正するのか分かりません。

答えて

10

あなたのアプリは、app.use(app.router)コール時に設定されたページリクエストのみをルーティングします。だから、次のいずれかであることをごapp.use通話を並べ替える:

エクスプレス3

app.use(express.static(__dirname + "/public")); 
app.use(app.router); 

__dirnameは、そのピアがpublicにだjsディレクトリに住んでいるのでので、実行中のスクリプトが、中に存在するディレクトリであるあなたコードをする必要があります:

app.use(express.static(__dirname + "/../public")); 
app.use(app.router); 

エクスプレス4つの

エクスプレス4 removes the need to manually do app.use(app.router)。エクスプレス4を使用すると、ちょうど必要があります。

app.use(express.static(__dirname + "/../public"));

+0

エクスプレス4の例では、私のために働きました。 'app.use(app.router);'は推奨されていないというエラーを返します –

関連する問題