2013-03-20 85 views
1

我試圖呈現html文件,但出現此錯誤。我有公用文件夾中的login.html提前呈現html file.thanks。如何在node.js中呈現html文件

我的服務器端編碼

var express = require('express'); 

var app = express(); 

app.configure(function(){ 

    app.set("view options", {layout: false}); 

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


}); 

app.get('/', function(req, res) { 

    res.render('login.html'); 

}); 

app.listen(8000) 

錯誤:無法查找視圖 「的login.html」

at Function.render (/home/aware/local/src/node_modules/express/lib/application.js:493:17) 
at ServerResponse.render (/home/aware/local/src/node_modules/express/lib/response.js:753:7) 
at /home/aware/local/src/health/demo2.js:17:9 
at callbacks (/home/aware/local/src/node_modules/express/lib/router/index.js:161:37) 
at param (/home/aware/local/src/node_modules/express/lib/router/index.js:135:11) 
at pass (/home/aware/local/src/node_modules/express/lib/router/index.js:142:5) 
at Router._dispatch (/home/aware/local/src/node_modules/express/lib/router/index.js:170:5) 
at Object.router [as handle] (/home/aware/local/src/node_modules/express/lib/router/index.js:33:10) 
at next (/home/aware/local/src/node_modules/express/node_modules/connect/lib/proto.js:199:15) 
at resume (/home/aware/local/src/node_modules/express/node_modules/connect/lib/middleware/static.js:60:7) 

回答

0

你保持你的公共文件夾內,因爲它們被設置爲靜態將不會被渲染的文件,因此他們將擔任的。除此之外的所有其他文件都將被渲染。請記住設置渲染引擎。

+0

告訴我渲染html的引擎 – silvesterprabu 2013-03-21 06:46:02

+0

那麼你可以選擇你喜歡哪一個。我用摩卡。但是,如果您提供動態內容,則只需要渲染引擎。在這種情況下,你必須已經解決了一個? – ExxKA 2013-03-22 09:21:29

0

我剛接觸今天連線&想解決一個類似問題,服務一個簡單的HTML文件。就我而言,我想在任何以前的中間件沒有完成請求時顯示404。

我創建了一個函數show404然後你可以做一些類似app.use(show404)的東西。這裏是我的CoffeScript,主要從連接errorHandler源代碼中得到啓發。

show404 = (req, res, next) -> 
    res.statusCode = 404 
    res.setHeader 'Content-Type', 'text/html; charset=utf-8' 
    html_path = require("path").resolve('.tmp/404.html') 
    require('fs').readFile html_path, (err, data)-> 
     throw err if err 
     console.log "DATA:", data 
     res.end data