node.js - 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);
解决方案
您必须导出模型架构: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;
});
推荐阅读
- imagemagick - 将 ColorToAlpha 精确复制到 MagickCore
- typescript - Firebase task.getResult().getData(); 总是返回 null。(异步问题?)
- swift - CoreData 聚合一对多关系
- python - 在 Lutz 的“Learning Python”中实现 ord() 背后的逻辑
- javascript - 不显示多个标记 MAP API
- android - BigPictureStyle 通知在 AndroidX 中不起作用
- python-3.x - 当我将 & 与 if 条件一起使用时,我的 python 代码不起作用;但是当我使用嵌套的 if 循环时,它工作正常
- python - Python 错误消息:TypeError:'str' 对象不可调用
- r - Stargazer 没有显示稳健 se 的观察次数
- r - 无法使用 R