【问题标题】:Can't save data into MongoDB server using Mongoose无法使用 Mongoose 将数据保存到 MongoDB 服务器
【发布时间】:2020-06-12 22:32:09
【问题描述】:

我正在尝试将数据库集成到我的 DiscordBot 应用程序中,目前在使用 Mongoose 将新用户输入 MongoDB 时遇到问题。 控制台也没有显示任何错误。

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)

【问题讨论】:

  • 你能在if条件之前console.log(user)检查用户是否存在吗?也console.log(message.author)检查其内容

标签: node.js mongodb mongoose


【解决方案1】:

您没有收到错误日志的原因是因为catch 语句中的console.log 语法错误。将console.log.err 更改为console.log(err)

userSchema 中为role 定义的类型是String,您将其作为数组role: ["default"] 传递。您需要将其更改为role: "default"

同样在成功时,如果您尝试将键 reply 设置为具有值 "Information saved"message 对象,那么您应该将 message.reply("Information saved") 替换为 message.reply = "Information saved"

【讨论】:

  • 问题解决了,谢谢!!顺便说一句,message.reply 是 discord.js 模块中的一个函数,所以我对那部分没意见
猜你喜欢
  • 2017-07-27
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 2021-09-22
相关资源
最近更新 更多