这是我的代码:
const db = require('../models');
const findAllUsers = async (req, res) => {
try {
const users = await db.User.findAll();
return res.status(200).json({
users,
});
} catch (error) {
return res.status(500).json({error: error.message})
}
}
module.exports = {
findAllUsers,
}
在执行此操作时,我收到一个错误,说";TypeError:无法读取未定义的"的属性"status";
正在使用,express js和sequelize来执行操作!
这是我的路线
router.get('/users', (req, res) => {
//const a = controller.allUsers;
res.send(controller.findAllUsers());
});
为什么不尝试将req
和res
作为输入参数传递给findAllUsers
方法?
router.get('/users', (req, res) => {
controller.findAllUsers(req, res);
});
TypeError:无法读取未定义的属性"status">
您访问可能未定义的status
的内容是什么?
res.status
那么什么是res
,为什么可能未定义?
const findAllUsers = async (req, res) => {
res
是传递给findAllUsers
的第二个参数
controller.findAllUsers()
…并且您没有将任何参数传递给findAllUsers
,因此它们将都未定义。
您需要将值传递给您使用的参数!
旁白:
res.send(controller.findAllUsers());
您正在获取findAllUsers
的返回值并将其发送到响应中……但您已经尝试在该函数中发送响应了。您不能多次响应同一请求。