node.js - 数据未插入数据库
问题描述
自从我尝试使用 mongoose 将数据插入 mongodb 但无法在 mongodb 中获取数据的几天以来,我就面临着这个问题。下面是我创建的架构
const mongoose = require('mongoose')
const db = require('../db/db')
const crypto = require('crypto')
const { v4 : uuidv4 } = require('uuid');
const validator = require('validator')
// const { stringify } = require('querystring')
const schema = mongoose.Schema
const userSchema = new schema({
ObjId: schema.Types.ObjectId,
name : {
type : String,
trim: true,
required : true,
maxlength: 32
},
email : {
type : String,
trim: true,
required : true,
validate(value) {
if(!validator.isEmail(value)){
throw new Error ('The Email you have entered is not correct. Please enter the correct Email ID')
}
}
},
hashed_password : {
type : String,
required : true,
},
about : {
type : String,
trim: true,
required: true
},
salt : String,
user_roles: {
type: Number,
default: 0,
required: true
},
history : {
type: Array,
default: []
},
// timestamps: {
// createdAt : '',
// updatedAt : {type : Date, default : Date.now()},
// },
}, {timestamps: true})
// added virtual field
userSchema.virtual('password')
.set((password) =>{
this.password = password,
this.salt = uuidv4()
this.hashed_password = this.encryptPassword(password)
})
.get(() => {
return this._password
})
userSchema.methods = {
encryptPassword : (password) => {
if(!password) return ''
try {
return crypto.createHmac('sha256', this.salt)
.update(password)
.digest("hex")
}
catch(error) {
if(error) {
console.log('Found an Error in Line 70 in User.Js', error.message)
}
}
}
}
module.exports = mongoose.model("User", userSchema);
这就是我连接数据库的方式
const mongoose = require('mongoose')
require('dotenv').config
// const connectionURL = 'mongodb://127.0.0.1:27017'
//const databaseName = 'ecommerce_db'
mongoose.connect(
// connectionURL,
process.env.MONGOURI,
{
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true
}
)
// .then((result) => { console.log('Mongo DataBase Connected', result)})
.then(() => { console.log('Mongo DataBase Connected')})
.catch((err) => {console.log('Mongoose Connection Failed', err)})
这就是我保存数据的地方
const User = require('../models/user')
const { response } = require('express')
const mongoose = require('mongoose')
exports.signUp = (req, res) => {
console.log('[Logging]', req.body)
// const user = new User({
// _id: mongoose.Schema.Types.ObjectId(),
// name: req.body.name,
// email: req.body.email,
// password: req.body.hashed_password
// })
const user = new User(req.body)
user.save((error, response) => {
if(error) {
return res.status(400).json({
error
})
}
res.json({
user
})
})
}
我得到了所有正确的输入和成功消息,但我仍然无法在 mongodb 中获取数据,我做错了什么吗
解决方案
推荐阅读
- asp.net-core - ASP.NET Core (3.0) Rangeprocessing 视频流
- javascript - 图表 js 数据标签样式
- java - XPath 选择前面的输入
- php - 如何从调试器(流明,RESTClient)通过 JSON 存储多条记录
- .net - .NET Framework 中的“意外令牌”
- python - 我应该在文件开头还是其他地方声明导入?
- c++ - 使用 C++ 中的开源应用程序捕获 Qualcomm Quectel 调制解调器的诊断帧数据
- theorem-proving - 精益中的有根据的递归
- reactjs - 如何在不更改 React.Component 的所有用法的情况下扩展 React Component 道具类型
- python - 分析时python3.x中出现意外的MemoryError