在nodejs中重置密码

时间:2014-12-16 10:19:07

标签: node.js

我正在编写一个用户可以重置密码的脚本。

用户将收到类似

的电子邮件

My example

当用户点击该链接时。表格将打开 用户可以输入新密码。 这是我的路线代码

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方法

4 个答案:

答案 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');
         }
     })
});