我正在尝试制作一个npm模块,用户需要发送他的token和id才能连接。
这是模块的代码:
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,并不是定制的消息“Incorrect authorization token。”
当我尝试访问response.body.message或response.message时,它们的值为undefined,我无法接收到我的错误代码。我已经尝试使用return res.status(401).json({message: "Incorrect authorization token"})
,但我再次获得状态错误代码。