Mongoose不适用于Firebase(Express Api)主机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongoose不适用于Firebase(Express Api)主机相关的知识,希望对你有一定的参考价值。

我将我的mongoose连接到MongoDb数据库,这个数据库由mLab托管。

try {
    mongoose.connect('mLab Hosting Url', { useNewUrlParser: true })
} catch (e) {
    console.error('An Error Occurred When Trying Connect To MongoDb.', e);
}

并托管我的Express api,需要通过firebase托管连接到此数据库。

router.get('/hello', (request, response) => {
        try {
            User.findOne({ email: 'm.yaman.katby@gmail.com' }).then((result) => {
                return response.status(200).json(result);
            }).catch((e) => {
                return response.status(700).json(e);
            });
        } catch (e) {
            return response.status(700).json(e);
        }
    });

现在,当我在本地调用api时它是工作,当我将api部署到firebase并调用它不起作用并返回此错误“错误:无法处理请求”

答案

我在firebase日志中发现了问题,您无法从firebase托管的Express Api连接mLab托管数据库。原因是firebase不允许外部网络。

以上是关于Mongoose不适用于Firebase(Express Api)主机的主要内容,如果未能解决你的问题,请参考以下文章

save() 不适用于 mongoose.Schema

唯一索引不适用于 Mongoose / MongoDB

Mongoose 模式验证不适用于 Fawn

Mongoose Populate 不适用于 ObjectIds 数组

Mongoose 删除(拉)数组中的文档,不适用于 ObjectID

Mongoose find() 不适用于 $not 查询 [重复]