2017-03-07 13 views
0

私はまだ非難された警告を得ることができます、私はブルーバードのマニュアルに従おうとしましたが、それでも動作させることはできません。Bluebird Promiseに変更されましたが、まだマングースを使用して警告が表示されなくなりました。なぜですか?

assert.equal(query.exec().constructor, require('bluebird')); 
^ 

ReferenceError: assert is not defined 
    at Object.<anonymous> 

使用:

//使用青い鳥

mongoose.Promise = require('bluebird'); 
assert.equal(query.exec().constructor, require('bluebird')); 

エラー:

node:10059) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html 
(node:10059) Warning: Possible EventEmitter memory leak detected. 11 close listeners added. Use emitter.setMaxListeners() to increase limit 
私はマングースの約束の指示に従った場合

は私もエラーが出ます

コード

var mongoose = require('mongoose'); 
var Promise = require('bluebird'); 
Promise.promisifyAll(require('mongoose')); 

var _     = require('lodash'), 
    fs     = require('fs'), 
    path    = require('path'); 

mongoose.connect('mongodb://localhost/eclass'); 

var db = mongoose.connection; 

db.on('error', console.error.bind(console, 'connection error:')); 

db.once('open', function() { 
    // we're connected! 
    // create db schema 
    var EclassSchema = new mongoose.Schema({ 
     xsi: { 
      xsitype: 'string', 
      id: 'string' 
     }, 
     date_of_original_definition: 'string', 
     date_of_current_version: 'string', 
     date_of_current_revision: 'string', 
     revision: 'string', 
     status: 'string', 
     source_language: { 
      country_code: 'string', 
      language_code: 'string' 
     }, 
     preferred_name: 'string', 
     definition: 'string', 
     its_superclass: 'string', 
     hierarchical_position: 'string', 
     //keywords: 'string' 
    }); 
    // Create model 
    var Eclass = mongoose.model('Eclass', EclassSchema); 

    const pjsons = path.join(__dirname, '/../', 'file-operations', 'json-files'); 
    //console.log(pjsons); 

    function readFiles(pjsons, onError) { 
     fs.readdir(pjsons, function(err, filenames) { 
      if(err) { 
       onError(err); 
       return; 
      } 

      filenames.forEach(function(filename) { 
       fs.readFile(pjsons + '/' + filename, 'utf-8', function(err, data) { 
        if(err) { 
         onError(err); 
         return; 
        } 
        data = JSON.parse(data); 
        // Digging down into the json code 
        const ontomlOntoml = data['dic:eclass_dictionary']['ontoml:ontoml']; 
        const onto = _.first(ontomlOntoml); 
        const dictionary = onto['dictionary']; 
        const contClasses = _.first(dictionary); 
        const containedClasses = contClasses['contained_classes']; 
        const ontClass = _.first(containedClasses); 
        const ontomlClass = _.find(ontClass);  

        //Arrays 
        const xsiArray = _.map(ontomlClass, '$'); 
        const date_of_original_definitionArray = _.map(ontomlClass, 'date_of_original_definition'); 
        const date_of_current_versionArray = _.map(ontomlClass, 'date_of_current_version'); 
        const date_of_current_revisionArray = _.map(ontomlClass, 'date_of_current_revision'); 
        const revisionArray = _.map(ontomlClass, 'revision'); 
        const statusArray = _.map(ontomlClass, 'status'); 
        const sourceLanguageArray = _.map(ontomlClass, 'source_language'); 
        const preferredNameArray = _.map(ontomlClass, 'preferred_name'); 
        const definitionArray = _.map(ontomlClass, 'definition'); 
        const itsSuperclassArray = _.map(ontomlClass, 'its_superclass'); 
        const hierarchical_positionArray = _.map(ontomlClass, 'hierarchical_position'); 
        //const keywordsArray = _.map(ontomlClass, 'keywords'); 

        // Looping and storing the data into mongodb 
        //console.log(ontomlClass.length); 
        for (var i = 0; i < ontomlClass.length; i++) { 
         //console.log(hierarchical_positionArray[i]); 
         var newEclass = new Eclass(); 
         newEclass.xsi.xsitype = xsiArray[i]['xsi:type']; 
         newEclass.xsi.id = xsiArray[i]['id']; 
         newEclass.date_of_original_definition = date_of_original_definitionArray[i]; 
         newEclass.date_of_current_version = date_of_current_versionArray[i]; 
         newEclass.date_of_current_revision = date_of_current_revisionArray[i]; 
         newEclass.revision = revisionArray[i]; 
         newEclass.status = statusArray[i]; 
         newEclass.source_language.country_code = sourceLanguageArray[i][0].$.country_code; 
         newEclass.source_language.language_code = sourceLanguageArray[i][0].$.language_code; 
         newEclass.preferred_name = preferredNameArray[i][0].label[0]._; 
         newEclass.definition = definitionArray[i][0].text[0]._; 
         //newEclass.its_superclass = itsSuperclassArray[i][0].$.class_ref; 
         newEclass.hierarchical_position = hierarchical_positionArray[i]; 
         //newEclass.keywords = keywordsArray[i][0].label[0]._; 
         newEclass.saveAsync() 
         .then(function() { 
          mongoose.disconnect(); 
         }) 
         .catch(function(err) { 
          console.log('There was an error', err); 
         }); 
        } 
       }); 
      }); 
     }); 
    } 
    readFiles(pjsons); 
}); 
+0

まあ、D:

からの変更:に

var mongoose = require('mongoose'); var Promise = require('bluebird'); Promise.promisifyAll(require('mongoose')); 

あなたはBluebirdsマニュアルの代わりにhttp://mongoosejs.com/docs/promises.htmlのアドバイスに従おうとしていますか? – Bergi

+0

投稿ごとに1つだけ質問してください。 – Bergi

+0

こんにちは@Bergi次に私は得る:assert.equal(query.exec()。コンストラクタ、require( 'bluebird')); ^ ReferenceError:アサートが定義されていません atオブジェクト。

答えて

0

私はこれを解決するために@Bergiから助けを得ました。

.save() 

mongoose = require('mongoose'); 
mongoose.Promise = require('bluebird'); 

そして

.saveAsync() 

から変更

関連する問題