为了账号安全,请及时绑定邮箱和手机立即绑定

Nodejs - UnhandledPromiseRejectionWarning:

Nodejs - UnhandledPromiseRejectionWarning:

aluckdog 2022-01-13 19:58:57
我有以下会话控制器.jsimport User from '../models/User';class SessionController {   async store(req, res) {      const { email, password } = req.body;      console.log(req.body);      const user = await User.findOne({ where: { email } });   }}export default new SessionController();用户.jsimport Sequelize, { Model } from 'sequelize';import bcrypt from 'bcryptjs';class User extends Model {   static init(sequelize) {      super.init(         {            name: Sequelize.STRING,            email: Sequelize.STRING,            password_hash: Sequelize.STRING,         },         {            sequelize,         }      );      return this;   }   checkPassword(password) {      return bcrypt.compare(password, this.password_hash);   }}export default User;和 Insomnia 从 /sessions 路由发送数据我打电话console.log(req.body),我得到了所有的数据,所以我不知道为什么我会收到这个错误:(node:8589) UnhandledPromiseRejectionWarning: TypeError: Cannot convert undefined or null to object    at Function.keys (<anonymous>)    at Function.findAll (/home/julio/www/bootcamp2019/gympoint/node_modules/sequelize/lib/model.js:1692:47)    at Function.findOne (/home/julio/www/bootcamp2019/gympoint/node_modules/sequelize/lib/model.js:1924:17)    at store (/home/julio/www/bootcamp2019/gympoint/src/app/controllers/SessionController.js:10:41)......任何的想法?
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

同样的问题也发生在我身上。


我发现我在第 4 行和第 5 行看到了错误的数据库路径。


import express from 'express';

import routes from './routes';


// import './config/database'; (Wrong)

import './database'; // (Correct)


class App {

  constructor() {

    this.server = express();


    this.middlewares();

    this.routes();

  }


  middlewares() {

    this.server.use(express.json());

  }


  routes() {

    this.server.use(routes);

  }

}


export default new App().server;


查看完整回答
反对 回复 2022-01-13
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

将 async 函数的 await 调用放在 try/catch 块中。


import User from '../models/User';


class SessionController {

    async store(req, res) {

        try {

            const { email, password } = req.body;


            console.log(req.body);


            const user = await User.findOne({ where: { email } });

        } catch (e) {

            console.log("Error Occurred", e)

        }


    }

}


export default new SessionController();


查看完整回答
反对 回复 2022-01-13
  • 2 回答
  • 0 关注
  • 476 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信