Bất đồng bộ trong nodejs



  • Vì có code chuyển trang này nhưng khi mình add vào database rồi muốn chuyển hướng thì không được
    code của mình :
    if (error) {
    res.render('register',{
    errors: error.array()
    });
    }
    var newUser = new User({
    username:username,
    password:password,
    name:name,
    image:image,
    email:email
    });
    User.createUser(newUser,function (err) {
    if (err) {
    throw err;
    }

    			res.redirect('/');
    		});
    
    });
    

    du lieu add vào data dc nhưng ma chuyen trang thi bao lõi này
    events.js:182
    throw er; // Unhandled 'error' event
    ^

    Error: Can't set headers after they are sent.
    at validateHeader (_http_outgoing.js:504:11)
    at ServerResponse.setHeader (_http_outgoing.js:511:3)
    at /var/www/html/node/nodeauth/routes/users.js:57:10
    at /var/www/html/node/nodeauth/node_modules/mongoose/lib/model.js:3822:16
    at /var/www/html/node/nodeauth/node_modules/mongoose/lib/services/model/applyHooks.js:162:20
    at _combinedTickCallback (internal/process/next_tick.js:95:7)
    at process._tickCallback (internal/process/next_tick.js:161:9)

    mọi người giúp e với.
    em cảm ơn



  • if (error) {
        res.render('register', {
           errors: error.array()
        });
    }
    

    Thêm return vào trước res.render để hàm dừng ở đó nhé. Hoặc phải thêm else sau if. Bạn viết như vậy thì request sẽ response về 2 lần, 1 lần chỗ render và 1 lần redirect.



  • cam onw ban nhieu minh fix dc roi nhes :D


Log in to reply