我正在编写一个用户可以重置密码的脚本。
用户将收到类似
的电子邮件当用户点击该链接时。表格将打开 用户可以输入新密码。 这是我的路线代码
app.get('/resetpassword/:token', function (req, res, next) {
var fileLocation = path.resolve(__dirname + '/../public/resetpassword.html');
console.log(fileLocation);
res.sendfile(fileLocation);
});
app.post('/setnewpassword', function(req,res,next){
console.dir(req.body);
});
我的HTML就在那里
<form action="/setnewpassword" method="POST">
<div>
<label>Password:</label>
<input type="password" name="password" />
</div>
<input type="submit" value="Submit" />
</form>
现在问题是我没有在 app.post('/ setnewpassword'
下获得参数有什么想法吗?如何在setnewpassword下获取params。
我只想使用POST方法
答案 0 :(得分:0)
var bodyParser = require('body-parser')
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
确保将代码放在发布处理程序之前。
答案 1 :(得分:0)
首先将bodysarser中间件添加到app.js
var bodyParser = require('body-parser');
.....
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
然后在您的处理程序中,访问表单参数,如下所示:
var password = req.params.password || '';
如果您使用REST客户端,请将Content-Type设置为application / x-www-form-urlencoded。
答案 2 :(得分:0)
你已经说过&#34;你没有在app.post下获得params(&#39; / setnewpassword&#39;&#34; 但是在
中提供了参数app.get('/resetpassword/:token', function (req, res, next)
您需要将此参数发送到html页面,然后从html页面发送到
app.post('/setnewpassword/:token',function(req,res){
});
答案 3 :(得分:0)
app.post('/changepass' , function (req, res, next) {
if (newpass !== newpassconfirm) {
throw new Error('password and confirm password do not match');
}
var user = req.user;
user.pass = newpass;
user.save(function(err){
if (err) { next(err) }
else {
res.redirect('/account');
}
})
});