最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Node.js:POST未将数据发送到数据库

运维笔记admin16浏览0评论

Node.js:POST未将数据发送到数据库

Node.js:POST未将数据发送到数据库

我正在尝试使用邮递员来发布数据。我正在使用x-www-form-urlencoded将数据发布到Local

没有显示错误。

将数据放在邮递员上之后,仅在数据库上获得以下数据:

{
    "createdAt": "2019-10-13T12:25:52.313Z",
    "updatedAt": "2019-10-13T12:25:52.313Z",
    "_id": "5da317e0e5a3df0a90308f68",
    "__v": 0
}

没有理由不接收数据库中的数据。任何帮助,将不胜感激。

路线:

const express = require('express');
const router = express.Router();
const Contact = require('../controllers/CrmController');

router.post('/create', Contact.addNewContact );

控制器:

const mongoose = require('mongoose');
const { ContactSchema } = require('../models/CrmModel');

const Contact = mongoose.model('Contact', ContactSchema, 'contact');

exports.addNewContact = async(req, res, next) => {
    try {
        let newContact = new Contact(req.body);
        let contact    = await newContact.save();

        res.send(contact);

    } catch (err) {
        res.status(500).json({ message: err.message });
    }

    next();
};

型号:

// Include MongoDB
const mongoose = require('mongoose');
// To Remove Deprication Warning from Console
mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);
mongoose.set('useUnifiedTopology', true);

//Define a Schema
const Schema = mongoose.Schema;

// Create Schema for The Current Model 
exports.ContactSchema = new Schema({
    firstName: {
        type : String
    },
    lastName: {
        type : String,
    },
    email: {
        type : String,
    },
    company: {
        type : String,
    },
    phone: {
        type : Number,
    },
    createdAt: {
        type    : Date,
        required: true,
        default : Date.now()
    },
    updatedAt: {
        type    : Date,
        required: true,
        default : Date.now()
    },
});

index.js:

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');

const crmRoutes = require('./server/routes/crmRoutes');

const app = express();

app.get('/', (req, res, next) => {
    res.send('Hello from Node App!');
});

app.use('/api/contact', crmRoutes);

mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/crmdb', (err) => {
    if(!err) {
        console.log('MongoDB has connected successfully!');
    } else {
        console.log('The error: ' + err);
    }
});

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.listen(3000, (err) => {console.log("Server Has Started");});

module.export = app;

回答如下:

添加路由后,您将添加bodyParser中间件。这意味着只有以后添加的路由才具有它。您需要在中间件之后移动路由。

发布评论

评论列表(0)

  1. 暂无评论