Node.js,express,护照authentication“Bad Request”

我正在使用Cloud 9来build立一个基本的社交媒体网站,并且在注册和用户身份validation方面遇到困难。 我正在使用Node.js,express和passport进行身份validation,并使用mongoDB作为数据库。

// PASSPORT Setup // app.use(require("express-session")({ secret: "I am the best", resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(User.authenticate())); passport.serializeUser(User.serializeUser()); passport.deserializeUser(User.deserializeUser()); // INDEX Page app.get("/", function(req, res) { res.render("landing-page"); }); // REGISTER NEW app.get("/register", function(req, res) { res.render("user/register"); }); // REGISTER CREATE app.post("/register", function(req, res) { var user = req.body.user; var newUser = new User({ username: user.email, firstName: user.firstName, lastName: user.lastName, }); User.register(newUser, user.password, function(err, user) { if(err) { console.log(err); return res.render("user/register"); } passport.authenticate("local")(req, res, function() { res.redirect("/"); }); }); }); // Login routes app.get("/login", function(req, res) { res.render("login"); }); app.post("/login", passport.authenticate("local", { successRedirect: "/", failureRedirect: "/login" }) , function(req, res) { }); // Logout route app.get("/logout", function(req, res) { req.logout(); res.redirect("/"); }); 

然而每当我运行这个,当我注册一个新的用户,它给了我一个只有“错误的请求”的网页,但是用户是在数据库中创build的。

看这个答案 ; 不好的要求是不是你的护照方法的问题:这表明你试图做出的要求是不正确的:

  • 你有没有把头放在: Content-Type: application-json

  • 同时更新bodyParser到最后的版本。 这解决了我有类似的问题。