在我导出结果后返回未定义"/>
MariaDB 在我导出结果后返回未定义
我正在使用 MariaDB 开发一个小型 Express js 应用程序
每当我开始四处寻找如何在我的应用程序中使用 mariaDB 时,我总能找到一些示例,其中 连接 和 查询 直接写入路由。
我认为这不是很可读,我试图将两者分开。
- 路由调用查询(例如
)User.getAll()
- 从
导入的User.getAll()
返回数据库的响应。User.mjs
我的问题:
到目前为止,这就是我认为需要的样子:
User.mjs
const User = {
all: async () => {
let conn;
try {
conn = await pool.getConnection()
const rows = await conn.query(`SELECT * FROM users`);
console.log(rows) // Shows list in terminal as expected
return rows // does not return to where it's being called..
} catch (err) {
throw err;
} finally {
if (conn) return conn.end();
}
}
}
export default User;
然后在我的用户路由器中使用如下:
userRouter.mjs
router.get('/', async (req, res) => {
const data = await User.all();
console.log(data); // Shows "undefined" in terminal
// Eventually also res.json(data);
})
查询有效...
当我在我的路由器中调用我的函数时,它确实执行了查询并且我的 console.log(rows) 显示了我想要的。
但是我的 console.log(data) 从我的路由器返回 undefined.
我错过了什么吗?或者这不是一个好方法吗?谢谢你的时间。
回答如下:用res.json(data)替换console.log(data)。
您需要将数据发送回 res.json 执行的客户端(在将数据转换为 json 之后)。如果你只是console.log你只是将数据记录到你的终端。
更多推荐
MariaDB 在我导出结果后返回未定义
发布评论