Node.js Can';t从NodeJs向MongoDB发送数据
我对NodeJs和MongoDB或web开发都是新手。我正在学习一个关于如何建立一个注册系统的教程,这个教程是在大约两年前发布的。通过下面的代码,他能够使用postman发送请求后测试,他的数据保存到MongoDB中,然而,当我尝试在postman上发送请求后,它一直在“发送请求”加载,数据从未保存到MongoDB中……我不确定nodejs是否更改了语法或者我是否做错了什么。。。请帮忙!! 这是user.controller.js的代码Node.js Can';t从NodeJs向MongoDB发送数据,node.js,mongodb,Node.js,Mongodb,我对NodeJs和MongoDB或web开发都是新手。我正在学习一个关于如何建立一个注册系统的教程,这个教程是在大约两年前发布的。通过下面的代码,他能够使用postman发送请求后测试,他的数据保存到MongoDB中,然而,当我尝试在postman上发送请求后,它一直在“发送请求”加载,数据从未保存到MongoDB中……我不确定nodejs是否更改了语法或者我是否做错了什么。。。请帮忙!! 这是user.controller.js的代码 const mongoose = require('mon
const mongoose = require('mongoose');
const User = mongoose.model('User');
module.exports.register = (req, res, next) => {
var user = new User();
user.fullName = req.body.fullName;
user.email = req.body.email;
user.password = req.body.password;
user.save((err, doc) => {
if (!err)
res.send(doc);
else {
if (err.code == 11000)
res.status(422).send(['Duplicate email adrress found.']);
else
return next(err);
}
});
这是user.model.js的代码:
const mongoose = require('mongoose');
const bcrypt = require('bcryptjs');
var userSchema = new mongoose.Schema({
fullName: {
type: String
},
email: {
type: String
},
password: {
type: String
},
saltSecret: String
});
// Events
userSchema.pre('save', function (next) {
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(this.password, salt, (err, hash) => {
this.password = hash;
this.saltSecret = salt;
next();
});
});
});
mongoose.model('User', userSchema);
这是服务器的代码(app.js)
在控制器中,您可以使用mongoose将数据写入mongo,但在服务器文件中,您使用本机mongo驱动程序连接到mongodb。因此,它不会起作用。这两个地方都需要mongodb本机驱动程序或mongoose
const mongoose = require('mongoose'),
const m_url = 'mongodb://127.0.0.1:27017/',
db_name = 'test', // use your db name
m_options = {
'auto_reconnect': true,
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true
}
mongoose.connect(m_url + db_name, m_options, function (err) {
if (err) {
console.log('Mongo Error ' + err);
} else {
status.mongo = 'Running'
console.log('MongoDB Connection Established');
}
});
// import/require user controller.
使用下面的代码,我已将服务器启动文件修改为使用mongoose
const mongoose = require('mongoose'),
const m_url = 'mongodb://127.0.0.1:27017/',
db_name = 'test', // use your db name
m_options = {
'auto_reconnect': true,
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true
}
mongoose.connect(m_url + db_name, m_options, function (err) {
if (err) {
console.log('Mongo Error ' + err);
} else {
status.mongo = 'Running'
console.log('MongoDB Connection Established');
}
});
// import/require user controller.