终端中的UnhandledPromiseRejectionWarning错误

时间:2018-08-22 12:39:30

标签: node.js mongodb express terminal routing

我有一个简单的注册表,“应该”保存到数据库中。但是,在终端中,此错误不断出现:

(node:14764) UnhandledPromiseRejectionWarning: TypeError: cb is not a function
    at promise.then.catch.err (C:\Users\*confidential*\node_modules\passport-local-mongoose\index.js:250:21)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
(node:14764) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().(rejection id: 1)

这是我的server.js文件,无法确定问题是否出在此文件中,或者是否与node-modules文件夹有关:

// **************************************** \\
// SETUP
// **************************************** \\

var express = require("express"),
    bodyParser = require("body-parser"),
    mongoose = require("mongoose"),
    passport = require("passport"),
    LocalStrategy = require("passport-local"),
    User = require("./models/user");

mongoose.connect("mongodb://localhost/FirstWebApp", { useNewUrlParser:true });

var app = express();

app.use(bodyParser.urlencoded({extended:true}));

app.use(express.static(__dirname + "/public"));

app.use(require("express-session")(
{
  secret: "ManArGer",
  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());

app.use(function(req,res,next)
{
  res.locals.currentUser = req.user;
  next();
});

app.set("view engine", "ejs");



// **************************************** \\
// ROUTES
// **************************************** \\

// HOMEPAGE
app.get("/", function(req,res)
{
  res.render("index");
});

// DASHBOARD
app.get("/dashboard", isLoggedIn, function(req,res)
{
  res.render("dashboard");
});

// REGISTER
app.get("/register", function(req,res)
{
  res.render("register");
});

  // REGISTER - POST (New user sign-up)
  app.post("/register", function(req,res)
  {
    // Get form data, then apply to USER database model
    var newUser = new User({username: req.body.username});
    User.register(newUser, req.body.email, req.body.password, function(err,new_user)
    {
      // If error: Provide useful output to user and redirect
      if(err)
      {
        // < useful output here >
        console.log(err);
        return res.render("register");
      }

      // Authenticate user and redirect to dashboard (main app)
      passport.authenticate("local")(req,res,function()
      {
        res.redirect("/dashboard");
      });
    });
  });


// **************************************** \\
// FUNCTIONS
// **************************************** \\

// Lockout un-authenticated user from a route (must log in)
function isLoggedIn(req,res,next)
{
  if(req.isAuthenticated())
  {
    return next();
  }
  res.redirect("/");
}



// **************************************** \\
// SERVER START
// **************************************** \\

app.listen(3000, function()
{
  console.log("SERVER STARTED");
});

这是app.post,注册页面,请求方法,节点模块文件,Mongoose / MongoDB配置等的路由问题吗?

编辑-这是请求的user.js文件代码:

var mongoose = require("mongoose"),
passportLocalMongoose = require("passport-local-mongoose");

var user_Schema = new mongoose.Schema(
{
  username: String,
  email: String,
  password: String
});

user_Schema.plugin(passportLocalMongoose);

module.exports = mongoose.model("User", user_Schema);

0 个答案:

没有答案