2017-08-15 58 views
-1

我想發佈數據到服務器保存到mongodb。通知獲取請求正常工作,但我不能發佈任何數據到MongoDB數據庫。我使用nodejs express向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

前和後工序後,數據庫保持不變

enter image description here

回答

0

試試這個:

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