3

REPL からの接続は正常に機能します。

> var mongoose=require('mongoose');
undefined
> mongoose.connect('mongodb://localhost/test', function(error) {
... console.log( 'connected\n%s\n', error );
... });

戻り値:

{ connections: 
   [ { base: [Circular],
       collections: {},
       models: {},
       replica: false,
       hosts: null,
       host: 'localhost',
       port: 27017,
       user: undefined,
       pass: undefined,
       name: 'test',
       options: [Object],
       _readyState: 2,
       _closeCalled: false,
       _hasOpened: false,
       _listening: false,
       _events: {},
       db: [Object] } ],
  plugins: [],
  models: {},
  modelSchemas: {},
  options: {} }
> connected # Yes!
undefined

ただし、Mocha テスト スイートからの接続は機能しません。

var mongoose = require( 'mongoose' );
console.log( 'connecting...' );

mongoose.connect( 'mongodb://localhost/test', function( error ) {
    if( error) console.error( 'Error while connecting:\n%\n', error );

    console.log( 'connected' );
});

戻り値:

$ mocha
connecting...



  0 passing (0 ms)

これが機能しない理由を誰かが知っていますか?

4

1 に答える 1

4

スイートにテストはありますか? そうでない場合は、マングースが接続する前にモカが終了するようです。モカページにリストされている機能の1つは

アクティブなループでの「ハング」を防ぐための自動終了

それと関係があるかもしれません。テストスイートのbeforeメソッドでマングースに接続してみてください。

describe('test suite', function() {
    before(function(done) {
        mongoose.connect('mongodb://localhost/test', function(error) {
            if (error) console.error('Error while connecting:\n%\n', error);
            console.log('connected');
            done(error);
        });
    });
});
于 2013-08-29T12:31:50.573 に答える