我正在嘗試使用mongoose和mongolab編寫API。使用node.js和mongoose連接到mongolab時出錯
這裏是我的代碼:
./index.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.connect('mongodb://user:[email protected]****.mlab.com:*****/****');
var Bear = require('./app/models/bear');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
var router = express.Router();
router.use(function(req, res, next){
console.log('request called');
next();
});
router.get('/', function(req, res) {
res.json({ message: 'in /' });
});
router.route('/bears')
.post(function(req, res) {
var bear = new Bear();
bear.name = req.body.name;
console.log(bear.name);
bear.save(function(err) {
console.log('in save')
if (err)
res.send(err);
res.json({ message: 'Bear created!' });
});
});
app.use('/api', router);
app.listen(port);
console.log('connected to port ' + port);
和
./app/models/bear.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BearSchema = new Schema({
name: String
});
module.exports = mongoose.model('Bear', BearSchema);
我的問題是,當我嘗試以下請求時:
它不返回任何東西。我試圖在console.slog中安裝console.log,但永遠無法進入。
我不明白我做錯了什麼。另外當我嘗試從我的終端連接到我的mongolab分貝時,它工作得很好。
'console.log(bear.name);'記錄任何東西到控制檯? –
是的!它顯示「toto」 – ZeenaZeek
與'err'一起,將'bear'傳遞給回調函數。像這樣: 'bear.save(function(err,bear){...})'。看看是否有幫助。 –