You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js报错:Route.get()需回调函数却获[object Undefined]求助

错误排查:Route.get() requires a callback function but got a [object Undefined]

运行app.js时抛出错误:Route.get() requires a callback function but got a [object Undefined],正在跟随freeCodeCamp的《4个Node.js项目》教程开发任务管理应用,相关代码如下:

app.js

const express = require('express') 
const app = express()
const tasks = require('./routes/tasks')

app.use(express.json())

// routes
app.get('/hello',(req,res) => {
    res.send('task manager app')
})

app.use('/api/v1/tasks',tasks)

const port = 3000

app.listen(port,console.log(`Server is listening on port ${port}...`))

routes/tasks.js

const express = require('express')
const router = express.Router()

const { getAllTasks,
createTask,
getTask,
updateTask,
deleteTask, } = require('../controllers/tasks')

router.route('/').get(getAllTasks).post(createTask)
router.route('/:id').get(getTask).patch(updateTask).delete(deleteTask)

module.exports = router

controllers/tasks.js

const getAllTasks = (req,res)=> {

    res.send('all items')

}
const createTask = (req,res) => {
res.send('create task')
}
const getTask = (req,res) => {
res.send('get single task')
}
const updateTask = (req,res) => {
res.send('update task')
}
const deleteTask = (req,res) => {
res.send('delete task')
}
module.export = {
getAllTasks,
createTask,
getTask,
updateTask,
deleteTask,
}

错误原因

问题出在controllers/tasks.js的导出语句上,你写的是module.export,正确的Node.js模块导出语法是module.exports(末尾多一个s)。由于导出语法错误,routes/tasks.js中导入的所有控制器函数都为undefined,Express路由无法获取有效的回调函数,因此抛出该错误。

修复方案

将controllers/tasks.js中的module.export修改为module.exports,修正后的代码如下:

const getAllTasks = (req,res)=> {
    res.send('all items')
}
const createTask = (req,res) => {
    res.send('create task')
}
const getTask = (req,res) => {
    res.send('get single task')
}
const updateTask = (req,res) => {
    res.send('update task')
}
const deleteTask = (req,res) => {
    res.send('delete task')
}
module.exports = {
    getAllTasks,
    createTask,
    getTask,
    updateTask,
    deleteTask,
}

内容的提问来源于stack exchange,提问作者Manish Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:31:07