Я новичок в node js и mongoose и не могу сохранить запись в мангусте. Я использую атлас Mongodb. Я пробовал несколько способов отладки и пробовал разные вещи, но не получаю сохранения или не могу войти внутрь функции сохранения. поэтому не может обработать обратный вызов сохранения в Moongose. Если попытаться нажать запрос в почтальоне, он не получит ответ, он будет заблокирован и не войдет в сохранение, поэтому заранее спасибо.
контроллер.js
const mongoose = require('mongoose');
const User = require('../models/users');
exports.registerUser = (req,res,next)=>{
console.info(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.info("Callback");
if (err) {
console.info("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.info(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.info("Callback");
if (err) {
console.info("error");
res.json({message: err});
}
else{
res.json({ message: 'User created' });
}
})
}
модель.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.info(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;





Вы уверены, что мангуст использует какие-либо соединения? Похоже, вместо этого вы подключились к серверу с модулем mongodb. См. документы Начиная о том, как подключиться к мангусту.
Если я использую mongoose, я получаю следующую ошибку, она устарела и использует mongoClient.connect Если я использую mongodb, тогда будет много изменений реализации, вы можете мне помочь