如何正确测试猫鼬连接

问题描述 投票:0回答:1

我想测试请求(表达式)中提供的猫鼬URI是否适合连接。

这是我到目前为止所得到的:

router.post("/ping", async function (req, res) {
    try {
        await mongoose.connect("mongodb://127.0.0.1:27017/db", {
            useNewUrlParser: true,
            useUnifiedTopology: true,
            socketTimeoutMS: 1000,
            serverSelectionTimeoutMS: 1000,
        });
        console.log("accessible")
    } catch (e) {
        console.log("not accessible")
    }
})

但是,在一个不真实的端口中,它显示“未处理承诺拒绝”,如果IP地址无法访问,它将永远被卡住。

Q

快速检查用户提供的猫鼬数据库URI是否良好的最佳方法是什么?

node.js mongodb express mongoose
1个回答
0
投票

因此,您是handling error,在猫鼬连接中可能会出现classes中的两个errorDocumentaion。现在只需对您的代码进行简单的更改,它就可以处理发生的错误]

router.post("/ping", async function (req, res) {
    try {
           const uri = 'mongodb://127.0.0.1:27017/db';
           await mongoose.connect(uri, {
            useNewUrlParser: true,
            useUnifiedTopology: true,
            socketTimeoutMS: 1000,
            serverSelectionTimeoutMS: 1000,
        });
        console.log("accessible")
    } catch (e) {
        console.log("not accessible" + e);
        //console.log(e.reason);
    }
})

仅用于连接,您可以使用以下任何一种方法

ECMA 6

import mongoose from 'mongoose'; 

mongoose.connect('mongodb://127.0.0.1:27017/db'); 
const db = mongoose.connection; db.on('error', console.error.bind(console, 'DB connection error!'));

ECMA 5.1

var mongoose = require('mongoose'); 

mongoose.connect('mongodb://127.0.0.1:27017/db');
var db = mongoose.connection; db.on('error', console.error.bind(console, 'DB connection error!'))
© www.soinside.com 2019 - 2024. All rights reserved.