当我进行axios调用以从没有Internet连接的猫鼬查询中获取用户数据时,我正在尝试修复错误UnhandledPromiseRejectionWarning: Error: querySrv ECONNREFUSED
。我曾尝试用User.findOne()
包装猫鼬查询mongoose.connect()
和try catch
,但错误仍然存在。
(节点:3966)UnhandledPromiseRejectionWarning:错误:querySrv ECONNREFUSED _mongodb._tcp.cluster1-94jth.mongodb.net [0]位于 QueryReqWrap.onresolve [作为oncomplete](dns.js:196:19)[0](node:3966) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个 由抛出异步函数引起的错误 没有障碍,或者拒绝没有处理的承诺 使用.catch()。 (拒绝ID:1)[0](节点:3966)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的Node.js进程。
client.js
try {
const res = await axios.get('/auth/user?', {
params: {
refreshToken: refreshToken,
userID: userID
}
}
);
console.log(res.data);
} catch (error) {
if(error.toJSON().message === 'Network Error'){
alert('no internet connection');
}
}
auth.routes.js
auth.get(
'/user',
async(req, res)=>{
try {
const {userID, refreshToken, uniqueDeviceID, authTimestamp} = req.query;
const existingUser = await User.findOne({
$and: [
{'user_id': userID},
{'refresh_token': refreshToken}
]
});
res.send(existingUser);
} catch (error) {
console.log(error);
}
}
);
server.js
try {
mongoose.connect(keys.mongoURI, {useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true});
console.log('Database Connected');
} catch (error) {
console.log(error);
}
答案 0 :(得分:4)
用macro index,pager X '<enter-command> set my_wk=$wait_key; unset wait_key<enter>\
<pipe-message> ripmime --paranoid -i - -d ~/attachments<enter>\
<enter-command> set wait_key=$my_wk<enter>' "save all attachements"
包装L = ["-","*","*","*"]
print(list(itertools.permutations(L)))
不会起作用,因为它没有mongoose.connect
。
您应该:
try/catch
答案 1 :(得分:2)
try/catch
, await
将无法与异步函数一起使用
以便从异步函数中捕获错误:
try {
await someAsyncFunction();
} catch (e) {
//...
}
或者您可以使用Promise中的catch
方法,甚至可以使用回调。