Javascript 无法读取属性';状态';Express js中未定义的
这是我的密码:Javascript 无法读取属性';状态';Express js中未定义的,javascript,node.js,Javascript,Node.js,这是我的密码: 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({err
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());
});
TypeError:无法读取未定义的属性“status”
您正在访问哪些状态可能未定义
那么什么是res
,为什么可能是未定义的呢
res
是传递给findAllUsers
…并且您没有将任何参数传递给findAllUsers
,因此它们都将未定义
您需要将值传递给您使用的参数
旁白:
您正在获取
findAllUsers
的返回值并将其发送到响应中……但您已经在尝试在该函数中发送响应。您不能多次响应同一请求。为什么不尝试将req
和res
作为输入参数传递给findAllUsers
方法
router.get('/users', (req, res) => {
controller.findAllUsers(req, res);
});
我不明白那些反对票。OP提供了一个示例代码。
res
对象显然未定义。您应该检查要传递给findAllUsers
函数的参数,或者检查您之前是否已经结束了响应。解决方案是什么?作为初学者,“您需要将值传递给您使用的参数!”我认为您也可以这样做:router.get('/users',controller.findAllUsers)代码>
const findAllUsers = async (req, res) => {
controller.findAllUsers()
res.send(controller.findAllUsers());
router.get('/users', (req, res) => {
controller.findAllUsers(req, res);
});