【问题标题】:I'm not getting the correct response on node我在节点上没有得到正确的响应
【发布时间】:2020-08-05 00:55:28
【问题描述】:

我正在尝试使用节点 JS 发送邮件,终端正在向我显示下一个代码: (node:13924) UnhandledPromiseRejectionWarning: TypeError: sgMail.send(...).then(...).cath 不是函数

我不确定为什么会发生这种情况,我所有的开发都在 API 休息中,并且终端仅在我通过路由请求时向我显示该错误。

这是我的代码:

const expressJwt = require('express-jwt')
const _ =require('lodash')
const { OAuth2Client } = require('google-auth-library')
const fetch = require('node-fetch')
const {validationResult} = require('express-validator')
const jwt = require('jsonwebtoken')
//Esto es para obtener el error de la  base de datos, se puede personalizar para hacerlo amigable.
const { errorHandler} =require('../helpers/dbErrorHandling')
//el siguiente const se usará para enviar correos
const sgMail = require('@sendgrid/mail')
sgMail.setApiKey(process.env.MAIL_KEY)

const pool = require('../database/connection')


class AuthController {
    async getAuth (req, res) {
        const result = await pool.query('select User_email from user');

        res.json({
            code: 200,
            message: "Prueba realizada con éxito",
            data: result
            
        });
    }

    async getAuths(req, res) {
    const email = (req.params.email);


    if(email.length == 0) {
        return res.json({
            code: 404,
            message: "Equipo no encontrado",
            data: [],
        })

    }else{
 

    //generate token

    const token = jwt.sign(
        {email}, 
         process.env.JWT_ACCOUNT_ACTIVATION,
        {expiresIn: '1440m' }
    )

    const emailData = {
      from: process.env.EMAIL_FROM,
      to: email,
      subject: 'Account activation link',
      html: `
                <h1>Please use the following to activate your account</h1>
                <p>${process.env.CLIENT_URL}/register/${token}</p>
                <hr />
                <p>This email may containe sensetive information</p>
                <p>${process.env.CLIENT_URL}</p>
            `
    }

    sgMail.send(emailData).then(sent => {
        return res.json({
            message: `el email se ha enviado a ${email}`
        })
    }).cath(err => {
        return res.status(404).json({
            error: errorHandler(err)
        })
    })

    }

        
    }

}


const authController = new AuthController();
module.exports = authController;

【问题讨论】:

  • cath 不是函数,但catch
  • @VincentRamdhanie 是的,这是错误,我做了更改,但现在我收到了我的 catch 消息,你能看到任何错误吗?
  • 错误信息是什么意思?
  • @VincentRamdhanie 是捕获显示的错误,与我定义的相同,但在查找错误后,我查找环境中的 API,我对其进行了更改,现在它可以工作了

标签: javascript node.js express sendgrid


【解决方案1】:

.catch(),拼写错误让我们受益匪浅。

【讨论】:

    猜你喜欢
    • 2021-08-17
    • 2013-11-22
    • 2018-05-15
    • 2017-10-27
    • 1970-01-01
    • 2017-03-06
    • 2018-11-16
    • 2013-08-06
    • 2018-01-01
    相关资源
    最近更新 更多