gpt4 book ai didi

node.js - Node Express 未发送自定义错误消息

转载 作者:行者123 更新时间:2023-12-04 10:30:41 25 4
gpt4 key购买 nike

我正在尝试制作一个 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,而不是自定义消息“不正确的授权 token ”。

当我尝试提供 response.body.message 或 response.message 时,我得到了 undefined,我无法收到我的错误代码。我试过 return res.status(401).json({message: "Incorrect authorization token"})但是我再次收到状态错误代码

最佳答案

我遇到了同样的问题。如果我发送res.status(401).json({message: "Incorrect authorization token"})我会回来 You do not have permission to view this directory or page .

我的问题是我使用 iisnode 通过 IIS 运行 nodejs。默认情况下,IIS 会替换您发送的任何错误消息。可以通过将以下代码添加到 <system.webServer> 下的 web.config 文件来关闭此行为。 ( source ):

<httpErrors existingResponse="PassThrough" />

重启服务器后,我能够得到{message: "Incorrect authorization token"}而是返回。

关于node.js - Node Express 未发送自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60434870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com