Узел Express не отправляет пользовательское сообщение об ошибке - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь создать модуль npm, в котором пользователю необходимо отправить свой токен и идентификатор для возможности подключения.

Это код модуля:

var https = require('https');
var fetch = require('node-fetch')


module.exports = class Cloud_client {
   constructor(client,token){
      this.token = token ;
      this.client = client;
      if(!token) return console.error(`[cdl.js] No token provided`);
      if(!client)  return console.error(`[cdl.js] No Client Id provided`);
   }
  login() {
     fetch(`https://www.cloudlist.xyz/isvalid/${this.token}`, {
        method: "POST",
        headers: {
        "Content-Type": "application/json"
        },
        body:JSON.stringify({client:this.client}),
          }).then(async response => {
            console.log(response)
    return console.error(`[cdl.js] ${response.statusText}`); // eslint-disable-line no-console

    })
  }
}

Обработчик сообщений на стороне сервера:

    app.post("/isvalid/:token", limiter ,async (req, res) => { 
  if(!req.body.client) return res.status(204).send({message: 'No id provided'});
  if(!req.params.token ) return res.status(204).send({message: 'No token provided'});
database.ref(`Bots/${req.body.client}`).once("value",function(data) {
  if(data.val() === null) return res.status(204).send({message: 'Invalid user'});
  if(!data.val().apiKey) return res.status(204).send({message: "This Client doesn't have an api key yet"});
  if(data.val().apiKey === req.params.token) {
    res.status(200 ).send({message: `Logged in as ${data.val().bot_name}`});
  }else {
    return res.status(401).send({message:"Incorrect authorization token."});   
  } 
})
})

Я действительно получаю сообщение об ошибке https://prnt.sc/r8iejl Но это сообщение из кода, в данном случае 401, а не из пользовательского сообщения "Неверно токен авторизации. "

И когда я пытаюсь дать response.body.message или response.message, я получаю неопределенное значение, я не могу получить свой код ошибки. Я пытался return res.status(401).json({message: "Incorrect authorization token"}), но я снова получаю код ошибки состояния

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