我使用nodejs表达到mongodb数据库的帖子请求不是很奇怪吗?

时间:2017-08-15 09:15:20

标签: node.js mongodb express http-post postman

我正在尝试将数据发布到服务器以保存到mongodb中。通知get请求正常,但我无法将任何数据发布到mongodb数据库。

主要代码:

// Tools to be used in the web development
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');

app.use(bodyParser.json());


Genre = require('./models/genre.js');
Book = require('./models/book.js');



let conn = mongoose.connection;
conn.openUri('mongodb://localhost/bookstore');

conn.on('error', err => console.error('mongodb connection error', 
err));
conn.on('connected', () => console.info(`Connected to mongodb`));
conn.on('disconnected', () => console.info('Disconnected from 
mongodb'));


// Routing to specific pages:
app.get('/', function(req, res){
res.send('Hello World');
});

app.get('/api/genres', function(req , res){
Genre.getGenres(function(err, genres){
    if(err){
        throw err;
    }
    res.json(genres);
})
});

app.post('/api/genres', function(req , res){
var genre = req.body;
Genre.addGenre(genre, function(err, genre){
    if(err){
        throw err;
    }
    res.json(genre);
})
});

app.get('/api/books', function(req , res){
Book.getBooks(function(err, books){
    if(err){
        throw err;
    }
    res.json(books);
})
});

app.get('/api/books/:_id', function(req , res){
Book.getBookById(req.params._id, function(err, book){
    if(err){
        throw err;
    }
    res.json(book);
})
});

//Specify the listening port
app.listen(3666);
//Display the url on the termianl
console.log('Server Running On http://localhost:3666');

类型

var mongoose = require('mongoose');


var genreSchema = mongoose.Schema({
name:{
    type: String,
    requires: true
},
create_date:{
    type: Date,
    default: Date.now
}
});

var Genre = module.exports = mongoose.model('Genre', genreSchema);

module.exports.getGenres = function(callback, limit){
Genre.find(callback).limit(limit);

}

//add genre
module.exports.addGenre = function(genre, callback){
Genre.create(callback);

}

我使用邮递员应用程序发布,一旦我按下帖子,我什么都没收到,没有任何东西被添加到数据库

邮递员程序

Postman Procedure

和post程序之前和之后的数据库保持不变

enter image description here

1 个答案:

答案 0 :(得分:0)

请改为尝试:

module.exports.addGenre = function(genre, callback){
   Genre.create(genre, callback); // genre is object to be added, { name: "Name" } for example
}