簡體   English   中英

我如何在 node.js 中呈現 html 文件

[英]how can i render html file in node.js

我曾嘗試呈現 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)

最接近將 html 用於節點視圖的是 EJS(嵌入式 JavaScript)

通過這種方式,您可以編寫普通的 HTML,通過節點傳遞數據並使用以下標簽顯示它們: <%= var %>

http://embeddedjs.com/

https://github.com/visionmedia/ejs

您可以使用嵌入式 JavaScript(ejs)使用 Nodejs 渲染 HTML 頁面。 在這里你可以通過 - ejs 的文檔

要使用 ejs,首先創建名為 views 的目錄,在該目錄中創建一個擴展名為 .ejs 的文件。

您保存在公用文件夾中的文件不會被呈現,因為它們被設置為靜態,因此它們將按原樣提供。 將呈現此之外的所有其他文件。 記得設置渲染引擎。

我今天剛接觸 connect 並想解決一個類似的問題,提供一個簡單的 HTML 文件。 就我而言,我想在任何以前的中間件尚未完成請求時顯示 404。

我創建了一個函數 show404 然后你可以做類似app.use(show404)事情。 這是我的 CoffeScript,主要靈感來自於 connect 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM