Node.js Can';t使用Mongoose将数据保存到MongoDB服务器
我正在尝试将一个数据库集成到我的DiscordBot应用程序中,目前在使用Mongoose将新用户输入MongoDB时遇到了问题。 控制台也没有显示任何错误Node.js Can';t使用Mongoose将数据保存到MongoDB服务器,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在尝试将一个数据库集成到我的DiscordBot应用程序中,目前在使用Mongoose将新用户输入MongoDB时遇到了问题。 控制台也没有显示任何错误 const mongoose = require('mongoose') const User = require('../models/userModels') module.exports = message => { User.findOne({userID:message.author.id}, (err,user)
const mongoose = require('mongoose')
const User = require('../models/userModels')
module.exports = message => {
User.findOne({userID:message.author.id}, (err,user)=>{
if(user == null){ //Create new db collections if none was found
const user = new User({
_id: mongoose.Types.ObjectId(),
userID: message.author.id,
username: message.author.username,
role: ["default"],
balance: 0,
level: 1,
exp: 0,
lastAttendance: message.createdAt
})
user.save()
.then(result => {
console.log(result)
message.reply("Information saved")
})
.catch(err => console.log.err)
}
}
这是我的型号代码:
const mongoose = require('mongoose')
const Schema = mongoose.Schema
var userSchema = new Schema({
_id: Schema.Types.ObjectId,
userID:{type: String, unique:true, required:true},
username: String,
balance:{type: Number, require:true},
role: {type:String, enum: ['default','admin']},
level:{type: Number, require:true},
exp:{type: Number, require:true},
lastAttendance: Date
})
module.exports = mongoose.model('Users', userSchema)
无法获取错误日志的原因是
console.log
语句中的catch
语法错误。将console.log.err
更改为console.log(err)
在userSchema
中为role
定义的类型是String
,您将其作为数组role:[“default”]
传递。您需要将其更改为角色:“默认值”
同样在成功时,如果您试图将键
reply
设置为message
对象的值“保存的信息”
,那么您应该将message.reply(“保存的信息”)
替换为message.reply=“保存的信息”
是否可以在if条件之前console.log(user)
,检查用户是否存在?另外console.log(message.author)
检查其内容问题已解决,谢谢!!顺便说一下,message.reply是discord.js模块中的一个函数,所以我对这部分没意见