没有进入猫鼬的保存功能

时间:2019-02-05 11:19:31

标签: node.js mongodb mongoose

我是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;

1 个答案:

答案 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文档。