Node.js运行Express服务触发Cannot Get /错误的问题求助
问题原因说明
Cannot GET / 错误的核心原因是你的Express服务仅定义了POST方法的/pass接口,没有为根路径/注册对应的GET请求处理逻辑,当你直接在浏览器访问服务地址、或者向/路径发送GET请求时,Express找不到匹配的路由处理函数就会返回这个错误。
解决方案
- 如果你需要验证服务是否正常运行,可以新增根路径的GET路由,代码添加在
app.post逻辑前即可:
app.get('/', (req, res) => { res.send('服务运行正常,请向/pass路径发送POST请求调用功能'); });
- 如果你是要调试已开发的
/pass业务接口,不要直接在浏览器地址栏输入地址访问,浏览器默认发起GET请求,你需要用Postman、Apifox或者curl命令发起POST请求,请求地址为http://你的服务地址/pass,请求头设置Content-Type: application/json,请求体传入对应参数即可:
{ "user": "你要操作的Roblox用户名" }
- 现有
/pass接口缺少返回处理和异常捕获,客户端发起请求后会一直等待直到超时,建议补充对应逻辑:
app.post('/pass', jsonParser, async(req, res) => { try { let username = req.body.user; let userid = await roblox.getIdFromUsername(username); console.log('Working!') await roblox.setRank(process.env.groupId, userid, "Trainee"); res.status(200).json({status: 'success', message: 'Rank设置完成'}); } catch (err) { console.error(err); res.status(500).json({status: 'error', message: err.message}); } });
内容的提问来源于stack exchange,提问作者SpyingBadge2143
相关产品推荐
相关产品推荐

