我是nodejs的新手。我正在尝试使用ejs引擎登录表单。我想要的只是使用post请求在欢迎屏幕中打印用户名和密码。问题是,如果我使用POST操作,它将打印我的数据,但不显示欢迎屏幕布局;如果我使用GET操作,它将显示屏幕布局,但没有数据。我已经在app.js文件中编写了代码。对吗??我在下面提到了我的app.js代码以供参考。提前谢谢。
代码:-
app.post('/welcome', function(req, res) {
res.send('Username is '+req.body.unm+'<br>Password is '+req.body.pwd);
});
发布于 2017-04-26 18:28:41
你面临的问题是什么?返回的字符串是否没有显示值?在使用模板引擎时,通常应该使用render
而不是res.send
来发送视图。
请查看ejs主页中提供的示例。
发布于 2017-04-26 18:30:52
在ejs npm页面上有一些非常有用的信息:https://www.npmjs.com/package/ejs
我建议您研究一下express
包,它允许您为页面提供服务,因此您应该从以下内容开始:
app.get('/', function(req, res){
return res.sendFile(__dirname + '/index.html');
});
下面是一个有用的答案,它将帮助您解决问题:how to implement login auth in node.js
发布于 2017-04-26 18:35:39
如果您将express与ejs一起使用,则需要定义包含视图(.ejs文件)的文件夹,如下所示:
var express = require('express')
app.use(express.static(__dirname + '/views')); // set the static files location for the static html
而不是res.send,而是这样响应:
app.post('/welcome', function(req, res) {
res.render('welcome', {username: req.body.unm, password: req.body.pwd});
});
在welcome.ejs中构建您的html,并为<%= username %>
和<%= password %>
放置占位符
项目库中views目录下的示例welcome.ejs
文件:
<div class="container">
<p>Welcome<b><%= username %></b></p>
<p>Your password is <%= password %> </p>
</div>
https://stackoverflow.com/questions/43631496
复制相似问题