我是Node js和mongoose的新手,无法将记录保存在mongoose中。我正在使用Mongodb Atlas,我尝试了几种调试方式并尝试了其他方法,但没有得到保存,或者无法进入save函数内部。因此无法处理Moongose中的save回调如果尝试在邮递员中命中请求,将无法获得响应,因此无法获取响应,因此无法进入保存状态
controller.js
const mongoose = require('mongoose');
const User = require('../models/users');
exports.registerUser = (req,res,next)=>{
console.log(req.body);
const user = new User({
_id:mongoose.Types.ObjectId(),
firstName: req.body.firstName,
lastName: req.body.lastName,
email: req.body.email
});
user.save(function(err) {
console.log("Callback");
if (err) {
console.log("error");
res.json({message: err});
}
else{
res.json({ message: 'User created' });
}
})
}
router.js
const mongoose = require('mongoose');
const User = require('../models/users');
exports.registerUser = (req,res,next)=>{
console.log(req.body);
const user = new User({
_id:mongoose.Types.ObjectId(),
firstName: req.body.firstName,
lastName: req.body.lastName,
email: req.body.email
});
user.save(function(err) {
console.log("Callback");
if (err) {
console.log("error");
res.json({message: err});
}
else{
res.json({ message: 'User created' });
}
})
}
model.js
const mongoose = require('mongoose');
const userSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
firstName: {type: String, required: true},
lastName: {type: String, required: true},
email: {type: String, required: true}
});
module.exports = mongoose.model('User', userSchema);
app.js
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const userRoutes = require('./api/routes/users');
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<connection string>/admin";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
});
mongoose.Promise = global.Promise;
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use((req,res,next )=>{
console.log(req);
res.header("Access-Control-Allow-Origin", "*");
if (req.method === "OPTIONS") {
res.header("Access-Control-Allow-Methods", "PUT, POST, PATCH, DELETE, GET");
return res.status(200).json({});
}
next();
});
app.use('/', userRoutes);
app.use((req,res,next)=>{
const error = new Error('Not Found');
error.status = 404;
next(error);
});
app.use((error,req,res,next)=>{
res.status(error.status || 500);
res.json({
error:{
message: error.message
}
})
});
module.exports = app;
答案 0 :(得分:0)
您确定猫鼬正在使用任何连接吗?似乎您是使用function array_diff(a, b) {
for (i in b){
a = a.map(function(c){ if (c != b[i]){ return c; }});
}
var filtered = a.filter(function (el) {
return el != null;
});
return filtered;
}
模块连接到服务器的。有关如何与猫鼬连接的信息,请参见Getting Started文档。