在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 ,我得到Cannot GET /index.html显示在浏览器

所以我猜这是我的get方法中的name值有问题,但无法弄清楚它是什么以及如何解决它。

您的应用只会路由在app.use(app.router)调用时设置的页面请求。 所以重新sorting你的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

Express 4 不需要手动执行app.use(app.router) 。 随着Express 4你只需要:

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