Невозможно присвоить значение списку

Вы можете создать модуль mongoUtil.js, который имеет функции как для подключения к mongo, так и для возврата экземпляра mongo db:

var MongoClient = require( 'mongodb' ).MongoClient;

var _db;

module.exports = {

  connectToServer: function( callback ) {
    MongoClient.connect( "mongodb://localhost:27017/marankings", function( err, db ) {
      _db = db;
      return callback( err );
    } );
  },

  getDb: function() {
    return _db;
  }
};

Чтобы использовать его, вы сделаете это в своем app.js:

var mongoUtil = require( 'mongoUtil' );

mongoUtil.connectToServer( function( err ) {
  // start the rest of your app here
} );

И тогда, когда вам нужен доступ к mongo где-нибудь, вы можете сделать это:

var mongoUtil = require( 'mongoUtil' );
var db = mongoUtil.getDb();

db.collection( 'users' ).find();

Причина этого в том, что в узле, когда модули require 'd, они только загружаются / получаются один раз, так что вы только когда-нибудь закончите с одним экземпляром _db, а mongoUtil.getDb() всегда вернет тот же самый экземпляр.

Примечание, код не проверен.

-1
задан TheFallenOne 16 January 2019 в 16:05
поделиться

1 ответ

Преобразуйте свой foreach в цикл For.

for(int i=0;i<lstfruits.Count();i++)
{

    var lstColor = new List<Colors>();
    lstColor = db.Color.Where(f => f.FruitId == lstfruits[i].Id)
                       .Select(f => new Colors {ColorId=f.Id.ToString(), ColorName = f.Name, ColorDescription = f.Description })
                       .ToList();
    lstfruits[i].ColorsList = lstColor;
}

Вы можете на самом деле покончить с инициализацией списка внутри цикла с помощью

for(int i=0;i<lstfruits.Count();i++)
{

    lstfruits[i].ColorsList = db.Color.Where(f => f.FruitId == lstfruits[i].Id)
                       .Select(f => new Colors {ColorId=f.Id.ToString(), ColorName = f.Name, ColorDescription = f.Description })
                       .ToList();

}
0
ответ дан Anu Viswan 16 January 2019 в 16:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: