Node.js控制器无法返回响应但控制台可输出值,求技术排查
问题分析与解决办法
你的代码无法发送响应的核心原因是:fetchData函数需要使用res对象来返回响应,但你调用它时只传递了hubId,没有把res对象传入,导致fetchData里的res未定义,无法执行响应操作。
修正方案一:传递res对象到fetchData
修改调用逻辑,把res作为参数传给fetchData:
const hubHome = (req,res) => { const hubId = req.params.hubId; fetchData(hubId, res); } const fetchData = (id, res) => { console.log(`Hub id is ${id}`); return res.status(200).send(`Hub id is ${id}`); } module.exports = hubHome;
修正方案二:拆分职责(更推荐)
让fetchData专注于数据处理,响应逻辑留在控制器hubHome中,这样代码职责更清晰:
const hubHome = (req,res) => { const hubId = req.params.hubId; const result = fetchData(hubId); res.status(200).send(`Hub id is ${result}`); } const fetchData = (id) => { console.log(`Hub id is ${id}`); return id; } module.exports = hubHome;
内容的提问来源于stack exchange,提问作者Digvijay Singh Thakur
相关产品推荐
相关产品推荐

