我想测试请求(表达式)中提供的猫鼬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地址无法访问,它将永远被卡住。
快速检查用户提供的猫鼬数据库URI是否良好的最佳方法是什么?
因此,您是handling error
,在猫鼬连接中可能会出现classes
中的两个error
。 Documentaion。现在只需对您的代码进行简单的更改,它就可以处理发生的错误]
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!'))