[英]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 %>
您可以使用嵌入式 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.