1

模型有问题。试图做 a model.findOne(),但我不断收到错误

TypeError:User.findOne 不是函数

我有这样的模型设置:

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()

有什么我想念的吗?

4

1 回答 1

1

你在你的user.js文件中打错了,你忘记smodule.exports

module.exports = User = mongoose.model("User", UserSchema);
于 2018-10-02T18:47:24.810 回答