我尝试连接我的MongoDB数据库。我将Node.js与Express.js一起使用 我尝试创建模式并将对象解析为JSON,但不起作用。 这是index.js:
var express = require('express');
var router = express.Router();
var mongodb = require('mongodb');
var mongoose = require('mongoose');
var util = require('util');
var serwer = new mongodb.Server('127.0.0.1', 27017);
var mesons;
new mongodb.Db('test',serwer).open(
function(err,client){
if (err) throw err;
console.log('Polaczyles sie baza Mongo');
mesons = new mongodb.Collection(client,'mesons');
});
var mesonsSchema = new mongoose.Schema({
Name: String,
Mass: String,
Charge: String,
LifeTime: String,
AntiParticle: String,
Type: String,
Width: String,
IJPC: String,
MagneticMoment: String
});
var mesonsModel = mongoose.model('mesons', mesonsSchema );
/* GET home page. */
router.get('/', function(req, res, next) {
return mesonsModel.find(function( err, mesons) {
if( !err ) {
return res.json( mesons );
} else {
console.log( err );
return res.json( { error: 'No data returned'} );
}
});
});
module.exports = router;
当我连接localhost时,没有结果,没有错误,加载和加载......
答案 0 :(得分:1)
您需要确保启动与数据库的mongoose连接。看起来没有建立连接,因此mesonsModel.find
调用只是挂起。
您可以通过mongoose连接,而不是直接与mongodb驱动器连接:
mongoose.connect('mongodb://127.0.0.1:27017/test');
您可以通过侦听open事件等待连接是否成功:
mongoose.connection.once('open', function (callback) {
// now you can query the database
});
您应该删除整个mongodb.Db()
来电