2016-12-28 4 views
0

ich NodeJS lerne und darunter ist die Abfrage, wo ich stecke:Wie Mongoose Fehler beheben - Mungo: mpromise (default Versprechen Bibliothek Mungo) ist veraltet, Plug-in Ihrem eigenen Versprechen Bibliothek

user.route.js

module.exports = function(app){ 
    console.log("route initialized"); 
    var ctrl = require("../controllers/user.controller"); 
    app.post("/api/createuser", ctrl.createUser); 
}; 

Und create Funktion in der Steuerung user.controller.js

var User = require("../models/user"); 
controller.createUser = function(req,res){ 
    var user = req.body; 
    console.log(user); 
    var userModel = new User(user); 

    userModel.save(function(err, data){ 
     if(err){ 
      res.send("error occurred please try again"); 
     }else{ 
      res.send(data); 
     } 
    }); 
}; 

wenn ich jetzt versuchen, die URL http://localhost:3000/api/createuser durch Postman zu schlagen, erhalte ich folgende Mong o Fehler

Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html 

Jetzt habe ich keine Ahnung, wie ich meinen Code ändern kann, um Versprechen zu empfangen. Kann mir jemand dabei helfen?

Vielen Dank

Antwort

1

Ich persönlich bevor bluebird aber man konnte andere wie Q oder einen von es6 holen.

mongoose.Promise = require('bluebird'); 

Die mpromise verspricht Bibliothek. Mongoose 5.0 verwendet standardmäßig native Versprechungen, falls verfügbar, ansonsten keine Versprechungen. Sie können weiterhin mithilfe von mongoose.Promise = require('bluebird'); eine benutzerdefinierte Zusicherungsbibliothek einrichten. Mpromise wird jedoch nicht unterstützt. (von https://github.com/Automattic/mongoose/wiki/5.0-Deprecation-Warnings)

1

Mongoose-Funktion erfordert Versprechen und sie haben Callbacks jetzt veraltet. Also, diese beiden wird diese Warnung auf dem Server werfen,

mongoose.createConnection('mongodb://localhost/db'); 

mongoose.createConnection('mongodb://localhost/db', function(err, res) { 

}); 

Für dieses Problem Fixierung können Sie 3rd-Party-Bibliotheken wie blurbird verwenden oder können Sie ES6 nativen Versprechen verwenden. Ich bevorzuge normalerweise später, hier ist das Schnipsel für es6 native Versprechungen

Ich hoffe, es hilft.

Verwandte Themen