2013-03-20 61 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