在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"));