我的Express
应用中有以下代码:
var express = require('express'); // call express
var app = express(); // define our app using express
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
// connect to our database
mongoose.connect('mongodb://username:pwd@<url>/db-name');
var Bear = require('./app/models/bear');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080; // set our port
var router = express.Router();
//middleware to use for all requests
router.use(function(req, res, next) {
// do logging
console.log('Something is happening.');
next(); // make sure we go to the next routes and don't stop here
});
router.route('/bears')
.get(function(req, res) {
Bear.find(function(err, bears) {
if(err)
res.send(err);
console.log('I am in GET');
res.json(bears);
});
})
.post(function(req, res) {
var bear = new Bear();
bear.name = req.body.name;
console.log('body param:'+ bear.name);
bear.save(function(err) {
if(err)
res.send(err);
res.json({ message: 'Bear created!'});
});
});
router.get('/', function(req, res) {
res.json({ message: 'hooray! welcome to our api!' });
});
app.use('/api', router);
app.listen(port);
这是我的Model
代码:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BearSchema = new Schema({
name: String
});
module.exports = mongoose.model('Bear', BearSchema);
当我使用POSTMAN或浏览器时,请求会继续,并且不会停止或返回任何内容。我认为回调应该结束但不知道如何。
我正在点击http://localhost:8080/api/bears
并且它会不断刷新,请求永远不会结束。
当我点击/ api / bears&amp;请求没有结束:
Something is happening.
我点击/ api
时从服务器输出Something is happening.
在我看到的浏览器上,
Cannot GET /api
答案 0 :(得分:0)
问题在于我的package.json中的mongooose
版本。我更改为最新版本4.1.11
并执行了npm install
。这是一个错误:https://github.com/meanjs/mean/issues/1010
我添加了以下代码,以确保我没有收到错误并取得成功:
mongoose.connect('mongodb://db-name:pwd@mongourl:port/db', function(err) {
if(err) {
console.log(err);
} else {
console.log('success');
}
});
我收到了这个:
{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }
然后我使用RoboMongo
进行连接,一切都很好,所以我开始查看错误。 RoboMongo
使用SCRAM-SHA-1
作为身份验证机制。我开始在我的URL中指定auth作为选项,我遇到了上面的错误报告。