Я пытаюсь создать модуль 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"})
, но я снова получаю код ошибки состояния