无法读取 Express js 中未定义的属性'status'



这是我的代码:

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());
});

为什么不尝试将reqres作为输入参数传递给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的返回值并将其发送到响应中……但您已经尝试在该函数中发送响应了。您不能多次响应同一请求。

最新更新