简体   繁体   English

(节点:5700)不建议使用警告:猫鼬:mpromise(猫鼬的默认Promise库),请插入您自己的Promise库

[英](node:5700) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead

I'm getting this warning: DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead. 我收到此警告:DeprecationWarning:猫鼬:mpromise(猫鼬的默认诺言库)已过时,请插入您自己的诺言库。 I got this error when I was trying to do a .find on a model in MongoDb on my backend route. 我在后端路线上尝试在MongoDb中的模型上执行.find时遇到此错误。 I'm not sure what it means or how to address it. 我不确定这意味着什么或如何解决。

Below I show the route that is being called that is causing this error. 下面,我显示了导致此错误的正在调用的路由。 I apologize that i'm not that aware of promises in general, i'm not sure what they mean by "mpromise". 我很抱歉,我通常并不了解诺言,我不确定“妥协”是什么意思。

app.get("/search/search=:search&location=:location?", function (req, res) { console.log("I'm in home search back-end") app.get(“ / search / search =:search&location =:location?”,功能(要求,res){console.log(“我在首页搜索后端”)

console.log(req.params.search);
console.log(req.params.location);

var resultObj = {
    search: req.params.search,
    location: {},
    results: []
}

if (req.params.location) {


    var apiKey = "AIzaSyBejz2PGLk2-SG6MI6FCEmyaCQG-7pPuuw"
    var query = "https://maps.googleapis.com/maps/api/place/textsearch/json?query=" + req.params.location + "&key=" + apiKey;
    var query2 = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=" + req.params.location + "&destinations=&key=" + apiKey;
    request(query, function (error, response, body) {
        if (!error && response.statusCode === 200) {
            // console.log(results)

                resultObj.location = JSON.parse(body).results;
                // resultObj.location = body
                var geo = resultObj.location[0].geometry.location
                console.log("I requested google maps api");
                console.log(geo);

            // $near: [geo.lat, geo.lng]



            Item.find({
                // $text: { $search: req.params.search }, 
                'geometry.coordinates': {
                    $geoWithin: {
                        $center: [[geo.lng, geo.lat], 20 / 3963.2 ]
                    }

                }



            })
                .populate('properties.itemReviews')
                // .skip(20)
                .limit(5000)

                .exec(function (err, results) {

                    if (err) {
                        console.log("searching users by location was not successful");
                        console.log(err);
                        res.json({ failedLocation: "This location does not exist" })
                    } else {
                        console.log("ive successfully searched users by location, below is results");
                        console.log(err)
                        console.log(results);
                        resultObj.geoResults = results
                        resultObj.finalResults = [];
                        resultObj.geo = geo;
                        res.json(resultObj)
                    }
                });

            } else {
                res.json({ error: "There was an error with your address" });
            }


    });



} else {
    res.json(resultObj);

}

}); });

My code is working, I'm just worried about a deprecation causing problems in my code in the future. 我的代码正在运行,我只是担心过时过时会导致我的代码出现问题。 If there is nothing to worry about, please let me know! 如果没有什么可担心的,请告诉我!

In the server.js file where you have defined mongoose.connect() method. 在定义了mongoose.connect()方法的server.js文件中。 Add above it. 在其上面添加。

mongoose.Promise = global.Promise; // Use this line.
mongoose.connect('mongodb://url', { useMongoClient: true }, function (err) {
    if (err) {
        console.log('not connected to data base');
    }
    else {
        console.log('Successfully Connected to database');
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM