страница подключения к api сервера

#javascript #async-await #try-catch

Вопрос:

затем, запустив внутри асинхронную функцию без блока catch или отклонив обещание, которое не было обработано с помощью .catch(). чтобы завершить процесс узла при необработанном отклонении обещания, используйте флаг cli --unhandled-rejections=strict (см. [

 const router = require("express").Router();
const User = require("../modles/User");


router.get("/register", async (req,res) => {
   
    const user = await new User({
    username:"jhon",
       email:"jhon@gmail.com",
       password:"123456",
    
    
   })

   await user.save()
   res.send("ok")
   
});

module.exports = router; 

]1 (идентификатор отклонения: 1) (узел:13400) [dep0018] предупреждение об устаревании: необработанные отклонения обещаний считаются устаревшими. в будущем отказы в обещаниях, которые не будут обработаны, приведут к прекращению node.js процесс с ненулевым кодом выхода.

Комментарии:

1. оберните код внутри функции обработчика маршрута в try-catch блок. Кроме того, вам это не нужно await new User(....) . Это await нужно только перед user.save()

Ответ №1:

вам нужно только ждать и ловить. Первый из них бесполезен, потому что вы инициализируете свой класс.

Так что сделай это :

 const router = require("express").Router();
const User = require("../modles/User");


router.get("/register", async (req,res) => {
   
    const user = new User({
    username:"jhon",
       email:"jhon@gmail.com",
       password:"123456",
   })

   await user.save().catch(e => e) // Return the errors in the void. You can console.log it.
   res.send("ok")
   
});

module.exports = router;