Mongoose Model.findOne 不是函数

Mongoose Model.findOne not a function

模型有问题。尝试执行 model.findOne(),但我不断收到错误

TypeError: User.findOne is not a function

我的模型设置如下:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const UserSchema = new Schema({
  firstName: String,
  lastName: String,
  emailAddress: {
    type: String,
    required: true,
    unique: true
  },
  userName: {
    type: String,
    required: true,
    unique: true
  },
  password: {
    type: String,
    required: true
  }
});

module.export = User = mongoose.model("User", UserSchema);

并且我将它导入到我想要查找用户的文件中:

const { Strategy, ExtractJwt } = require("passport-jwt");
const log = require("./logger");
require('dotenv').config();
const fs = require("fs");
const secret = process.env.SECRET || 'thisneedstob3ch@ng3D';
const mongoose = require("mongoose");

const User = require("./models/user");

const opts = {
  jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
  secretOrKey: secret
};

module.exports = passport => {
  passport.use(
    new Strategy(opts, (payload, done) => {
      User.findOne({id: payload.id})
        .then(user => {
          if (user) {
            return done(null, {
              id: user.id,
              name: user.name,
              email: user.email
            });
          }
          return done(null, false);
        })
        .catch(err => log.error(err));
    })
  );
};

无论如何,我得到了错误。我试过 .findById() 以及 .findOne()

有什么我遗漏的吗?

您在 user.js 文件中输入错误,您忘记了 module.exportss:

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