Visual Studio показывает ошибку «Недостижимый код» в JavaScript - PullRequest
0 голосов
/ 03 августа 2020

Я работаю в API с NODE, но в момент написания V C показывает ошибку «Недостижимый код» на следующем коде:

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')

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








exports.AuthController = (req, res) => { 
    const email = (req.params.email);
    let sql = `select User_email from user where User_email = ${email}`;
    const mail = poo.query(sql);

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

    }else{
        return res.json({
            code: 404,
            message: "",
        })

    //generate token

    *const token = jwt.sign({
        email
    }, 
    process.env.ACCES_TOKEN_SECRET,{
        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}/users/activate/${token}</p>
                <hr />
                <p>This email may containe sensetive information</p>
                <p>${process.env.CLIENT_URL}</p>
            `
    }

    }

}*

Контент, которого нет получение меня находится между "*", поэтому, если я знаю, что это произошло, я буду благодарен за объяснение.

1 Ответ

0 голосов
/ 03 августа 2020

Вы имеете в виду недостижимый код , где вы упоминаете код непроведения ? Это сообщение означает, что код никогда не запустится.

В вашем случае вы return выполняете свою функцию как в ветке if, так и в else. Компилятор довольно умен.

if(email.length = 0) {
    return res.json({                    /* returns, exiting function */
        code: 404,
        message: "Equipo no encontrado",
        data: [],
    })
} else {
    return res.json({                    /* also returns, exiting function */
        code: 404,
        message: "",
    })
}
/* execution can never get here, so code below is unreachable. */

Вы хотите if (email.length === 0). if (email.length = 0) не выполняется во время выполнения, потому что length является свойством строки только для чтения. Вы не можете поместить в него значение 0.

Здесь есть пакет Spani sh для Visual Studio Code . Вы можете найти это полезным, особенно если вы только начинаете учиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...