Express Router中出现TypeError: res.json is not a function错误求助
错误原因排查:TypeError: res.json is not a function
核心问题出在./routes/posts.js的路由回调函数参数顺序上:
- Express路由处理函数的参数顺序固定为**
(req, res)**(请求对象在前,响应对象在后),你写反成了(res, req)。 - 这导致变量
res实际指向的是请求对象req,而请求对象并没有json()方法,因此抛出TypeError: res.json is not a function错误。
修正后的 ./routes/posts.js 代码
import express from "express"; const router = express.Router(); // 调整参数顺序为 req 在前,res 在后 router.get("/", (req, res) => { res.json("This works!"); }); export default router;
Express的路由回调严格遵循(request, response, next)的参数约定,请求对象负责承载客户端请求数据,响应对象用于构建并返回响应内容,颠倒顺序会导致变量指向错误的对象,从而引发方法不存在的报错。
内容的提问来源于stack exchange,提问作者rbrtzlt
相关产品推荐
相关产品推荐

