cari

Rumah  >  Soal Jawab  >  teks badan

mongodb - node.js bagaimana untuk membuat fail penghalaan yang tinggal tidak dilaksanakan?

Sebagai contoh, jika saya ingin menukar kata laluan, saya mempunyai kata laluan lama dan kata laluan baharu Pengesahan kata laluan lama diasingkan daripada penukaran kata laluan baharu. Bagaimanakah saya boleh menghalang kata laluan baharu daripada ditukar?

router.get('/:userid', function(req, res,next) {
    if(req.session.userid){
        return next();
    }
    res.redirect('/login');
});
router.get('/:userid', function(req,res,next){
    User.find(req.session.userid,function(err,doc){
        res.render('changepassword',{
            userid: req.session.userid,
            user:doc
        });
    });
});

router.post("/:userid",function(req,res) {
    User.findOne({
        name: req.session.userid,
        pwd: req.body.oldpwd
    }, function (err, doc) {
        if (err) {
            r.error = err;
            return;
        }
        if (doc) {
            console.log('success');
        } else {
            console.log('fail');
            return;
        }
        res.json(r);
    });
});

//不想使得当旧密码验证不成功的时候让以下代码执行
router.post("/:userid",function(req,res) {
    var u = {
        pwd :req.body.pwd
    };
    var userid = req.session.userid;
    if(userid && '' != userid) {
        User.findOneAndUpdate(userid,u,function(err, docs) {
            console.log('modify-----'+ docs);
            res.redirect('/');
        });
    }
});
为情所困为情所困2766 hari yang lalu703

membalas semua(2)saya akan balas

  • 滿天的星座

    滿天的星座2017-05-24 11:33:27

    Tambah di sebelah parameter fungsi panggil balik Jika pengesahan berjaya, seterusnya akan dikembalikan Jika pengesahan gagal, kegagalan akan dikembalikan

    router.post("/:userid",function(req,res,next) {
        User.findOne({
            name: req.session.userid,
            pwd: req.body.oldpwd
        }, function (err, doc) {
            if (err) {
                r.error = err;
                return;
            }
            if (doc) {
                console.log('success');
                return next();
            } 
            console.log('fail');
            res.json(r);
        });
    });
    
    //不想使得当旧密码验证不成功的时候让以下代码执行
    router.post("/:userid",function(req,res,next) {
        var u = {
            pwd :req.body.pwd
        };
        var userid = req.session.userid;
        if(userid && '' != userid) {
            User.findOneAndUpdate(userid,u,function(err, docs) {
                console.log('modify-----'+ docs);
                res.redirect('/');
            });
        }
    });
    
    

    Tetapi mereka sebenarnya boleh bersama, jadi mengapa memisahkan mereka? Contohnya:

    router.get('/:userid', function(req, res,next) {
        if(req.session.userid){
            return User.find(req.session.userid,function(err,doc){
                res.render('changepassword',{
                    userid: req.session.userid,
                    user:doc
                });
            });
        }
        res.redirect('/login');
    });

    balas
    0
  • 为情所困

    为情所困2017-05-24 11:33:27

    Untuk rujukan:

    1. router.post("/:userid", function(req,res) {
    and
    //Kami tidak mahu kod berikut dilaksanakan apabila pengesahan kata laluan lama gagal
    router.post("/: userid", function(req,res) {

    Ia adalah penghala pendua Anda perlu meletakkan kod pemprosesan berikut (tukar kata laluan) padanya.

    2 Selain itu, anda boleh mempertimbangkan password.js untuk pengurusan log masuk.

    Untuk rujukan.

    Suka MongoDB! Selamat mencuba!

    balas
    0
  • Batalbalas