1

我试图渲染 html 文件,但我得到了这个错误。我在公共文件夹中有 login.html。如何呈现 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)
4

4 回答 4

2

最接近将 html 用于节点视图的是 EJS(嵌入式 JavaScript)

这样您就可以编写普通的 HTML,通过节点传递数据并使用以下标签显示它们:<%= var %>

http://embeddedjs.com/

https://github.com/visionmedia/ejs

于 2013-03-20T09:58:52.513 回答
1

您可以使用嵌入式 JavaScript(ejs) 使用 Nodejs 呈现 HTML 页面。在这里你可以通过 - ejs的文档

要使用 ejs,首先创建名称为 views 的目录,在该目录中创建一个扩展名为 .ejs 的文件。

于 2021-07-21T12:31:03.273 回答
0

我今天刚接触到 connect 并想解决一个类似的问题,提供一个简单的 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
于 2013-04-10T08:25:32.217 回答
0

您保留在公用文件夹中的文件不会被呈现,因为它们被设置为静态,因此它们将按原样提供。将呈现此之外的所有其他文件。记得设置渲染引擎。

于 2013-03-20T10:13:34.453 回答