簡體   English   中英

expressjs無需任何引擎即可渲染html文件

[英]expressjs render html file without any engine

我是nodejs和expressjs的新手,我試圖開發一個簡單的登錄頁面,該頁面在表單內具有用戶名字段和密碼。 在提交表格時,我會將用戶重定向到主頁,在其中顯示消息Welcome user-userName。 我希望登錄頁面和主頁都是簡單的html文件。 登錄頁面中的表單將操作設置為home.html,因此,當用戶提交表單時,我可以使用res.body.userName和res.body.password獲取用戶名和密碼。 我的問題是如何使用express呈現html文件。 我知道我可以使用res.sendfile函數發送html文件,但sendfile函數不支持將共享變量共享到html文件。 我已經在app.js中的代碼下方發布了

var http = require("http");
var express = require("express");
var app = express();
app.use(express.bodyParser());
app.all("/",function(req,res,next){
    res.render("login.html");
});
app.all("/home.html",function(req,res,next){
    res.render("home.html",{"userName":req.body.userName});
})
http.createServer(app).listen(3000,function(){
    console.log("Listening at port 3000");
})

您不需要渲染引擎即可提供html文件等靜態資產。 您應該重新考慮在不同請求下要處理的內容,但是對於您想要的內容,必須將靜態資產放置在目錄中並告訴express它們的位置

app.use(express.static('public'));

假設你的服務器文件的根,和你有一個public的根文件夾為好,把你的HTML文件的文件夾中。 默認情況下,express將在該公用文件夾的末尾查找index.html文件,並將其提供給/GET請求。 您正在通過提供登錄頁面來覆蓋它。 沒關系。 您必須使用res.sendfile('/path/to/file')而不是res.render()

暫無
暫無

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

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