首页 > 解决方案 > 我的 Node.js 得到一个 Route.post() 得到一个对象未​​定义的错误

问题描述

我通过 Node.js 做了一个简单的模块化。

并且我尝试通过 Postman 做一个 api 测试,但是我的 nodemon 说发生了以下错误。

错误

Error: Route.post() requires a callback function but got a [object Undefined]
    at Route.

路由/router.js

const express = require('express');
const route = express.Router();
const user = require('../controller/user');

route.route('/user')
    .post(user.createUser)
    .get(user.readUser)
    .put(user.updateUser)
    .delete(user.deleteUser)

module.exports = route;

控制器/user.js

exports.createUser = function (req, res) {
    res.send('user create.')
}

exports.readUser = function (req, res) {
    res.send('user read.')
}

exports.updateUser = function (req, res) {
    res.send('user update.')
}

exports.deleteUser = function (req, res) {
    res.send('user delete.')
}

服务器.js

const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const router = require('./routes/router');

app.use(router);

app.listen(port, err => {
    if(err) console.log(err)
    else console.log('server on');
});

我怎么了?

标签: javascriptnode.js

解决方案


我建议将您当前的代码(controller/user.js)转换为:

module.exports = {

createUser: function(req, res){
    res.send('User created')
},
readUser: function (req, res) {
    res.send('Viewing user.')
},
updateUser: function (req, res) {
    res.send('User updated.')
},
deleteUser: function (req, res) {
    res.send('User deleted.')
}}

推荐阅读