(节点:3966)UnhandledPromiseRejectionWarning:错误:querySrv ECONNREFUSED

时间:2020-05-28 14:00:09

标签: node.js mongodb express mongoose server

当我进行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);    
}    

2 个答案:

答案 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方法,甚至可以使用回调。