使用node.js和Jade但是index.jade没有显示出来

我正在使用node.js和Jade,我在我的public / views文件夹中有index.jade,但是当我运行服务器并转到页面时,即使一切正常,没有错误,它应该呈现。 这是server.js中的代码:

console.log("Hello, world!"); var express = require("express") , app = express() , http = require("http").createServer(app); app.set("ipaddr", "192.168.0.103"); app.set("port", 8080); app.set("views", __dirname + "/views"); app.set("view engine", "jade"); app.use(express.static("public", __dirname + "/public")); app.use(express.bodyParser()); app.get("/", function(request, response) { response.send("Server is up and running"); response.render("index"); }); http.listen(app.get("port"), app.get("ipaddr"), function() { console.log("Server up and running. Go to http://" + app.get("ipaddr") + ":" + app.get("port")); }); 

这是我的index.jade:

 doctype 5 html head link(rel='stylesheet', href='http://fonts.googleapis.com/css?family=Open+Sans') link(rel='stylesheet', href='/css/style.css') title Super Awesome Chatroom body h1 Super Awesome Chatroom div div.inlineBlock span Your name: input(type="text", value="Anonymous")#name br form#messageForm textarea(rows="4", cols="50", placeholder="Share something!", maxlength=200)#outgoingMessage input(type="button", value="Share", disabled=true)#send div.inlineBlock.topAligned b Participants br div#participants div#messages 

everthing应该运行正常,当我去xxx.xxx.xxx:8080,它只是显示“服务器已启动并运行”,但没有显示index.jade。 任何帮助表示赞赏。

正如我所看到的,你忘记了包含router中间件。 另外,在您的路由处理程序中,您将返回两个响应。 如果你只是想渲染索引视图,删除response.send():

 var express = require("express") , app = express() , http = require("http").createServer(app); app.set("ipaddr", "192.168.0.103"); app.set("port", 8080); app.set("views", __dirname + "/views"); app.set("view engine", "jade"); app.use(express.bodyParser()); app.use(app.router); app.use(express.static("public", __dirname + "/public")); app.get("/", function(request, response) { response.render("index"); }); http.listen(app.get("port"), app.get("ipaddr"), function() { console.log("Server up and running. Go to http://" + app.get("ipaddr") + ":" + app.get("port")); }); 

另外,请记住这个关于expression的非常重要的事实: 定义中间件的顺序是至关重要的! 这就是为什么我将router中的static中间件移动到router优先级,因为这是处理您在应用程序中定义的路由callback的中间件。