javascript - 我的 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');
});
我怎么了?
解决方案
我建议将您当前的代码(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.')
}}
推荐阅读
- python - 在 PyYAML 的构造函数中接受锚点(别名)
- php - 将 Laravel 连接到 XAMPP MySQL (MariaDB) 数据库 SQLSTATE[HY000] [2006] MySQL 服务器已消失
- reactjs - 元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{...}”
- android - API 级别 26 以下的 NDK 和 SDK 之间的共享内存
- c - Makefile: Separated sources and objects
- laravel - How to assert that Laravel Controller returns view with proper data?
- laravel - 如何覆盖 Laravel 5.8 尝试方法?
- xml - 代号一创建xml
- python - 如何从 Python 脚本中触发气流 DAG 运行?
- node.js - 如何使我的代码生成令牌并将其返回以对用户进行身份验证?