无法从Node.JS中的对象获取字符串

时间:2015-03-22 20:53:01

标签: express mongoose

我尝试连接我的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时,没有结果,没有错误,加载和加载......

1 个答案:

答案 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()来电