首页 > 解决方案 > ReferenceError 在 node.js 中使用 mongoose 将数据保存到 mongodb

问题描述

我正在尝试使用 mongoose 保存到 mongodb 中的用户集合,我得到以下信息

错误: ReferenceError: Cannot access 'user' before initialization

const user = mongoose.model("users");

try {
        const user = await new user({
          googleId: profile.id,
          name: profile.displayName,
          email: profile.emails[0].values
        }).save();

        done(null, user);
      } catch (err) {
        console.log("error " + err);
      }
    }  

这是我的 user.js 文件:

 const mongoose = require("mongoose");
 const { Schema } = mongoose;

 const userSchema = new Schema({
     googleId: String,
     name: String,
     email: String
 });

 mongoose.model("users", userSchema);

标签: node.jsmongodbmongoose

解决方案


您必须导出模型架构:user.js

let mongoose = require("mongoose");

// User Schema
let userSchema  = mongoose.Schema({
     googleId: String,
     name: String,
     email: String
});

let User = module.exports = mongoose.model("users", userSchema);

index.js

// User model must be in same directory
const User = mongoose.model("users");

const user = new User();
//add model proporties
user.googleId = profile.id;
user.name = profile.displayName;
user.email = profile.emails[0].values;
//save user to db
user.save(function (err, data) {
    if (err) {
      console.log(err);
      res.send(err.message);
      return;
    }
    res.send('success');
    return;
});

推荐阅读