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

Can't get string from object in Node.JS

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

您需要确保启动到数据库的 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() 调用