繁体   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