10

初めて高速アプリを実行しようとしていますが、Web ページを表示できないようです。次のコードがあります。

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.htmlCannot GET /index.html表示されます

nameしたがって、メソッドの値に何か問題があると推測していますgetが、それが何であるか、およびそれを修正する方法を理解できません。

4

2 に答える 2

17

アプリは、app.use(app.router)呼び出し時に設定されたページ リクエストのみをルーティングします。app.useそのため、次のいずれかになるように呼び出しを並べ替えます。

エクスプレス3

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

__dirname実行中のスクリプトが存在するディレクトリです。コードjsのピアであるディレクトリに存在するため、次のようpublicにする必要があります。

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

エクスプレス4

Express 4では、手動で行う必要がなくなりますapp.use(app.router)。Express 4 を使用すると、次のものが必要になります。

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

于 2013-10-27T16:34:18.680 に答える
0

私はこの問題を抱えていました....多くのトラブルの後、2つのワークスペースまたはプロジェクトを同時に実行すると、このシナリオが作成されることがわかりました。そのため、ファイルだけでなく、一度にワークスペースのみを開くことができます...ホールフォルダーを開いてから、特定のファイルを実行します.VSコード設定で次の変更を行います。

設定をセットアップする

64ビットシステム用。

{
    "liveServer.settings.AdvanceCustomBrowserCmdLine: ": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
    "liveServer.settings.NoBrowser": false
}

32ビットシステム用。

{
    "liveServer.settings.AdvanceCustomBrowserCmdLine: ": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
    "liveServer.settings.NoBrowser": false
}
于 2018-05-03T18:10:25.767 に答える