如何在 express 中将 TINYINT(1) 转换为 BOOLEAN?
How to convert TINYINT(1) to BOOLEAN in express?
我的 MySQL 数据库中有一些列(infected
和 absence
)存储为 TINYINT(1)
.
当我做一个简单的
app.get("/users", (req, res) => {
const sql = `SELECT * from users`;
connection.query(sql, (err, results) => {
if (err) {
return res.send(err);
} else {
return res.json({ results });
}
});
});
在我的后端和一个
useEffect(() => {
axios
.get(`${config.server}/users`)
.then((result) => {
setUsers(result.data.results);
})
.catch((error) => console.error(error));
}, [setUsers]);
在我的 ReactJS 前端中,我无法执行以下操作:
users.filter((u) => u.infected);
只有
users.filter((u) => u.infected === 1);
正在工作。
因为使用 users.filter((u) => u.infected);
对我来说更直观,我想知道,在最佳实践中我该如何处理这个问题?
- 我需要用另一种类型存储我的值吗?
- 我是否需要 SELECT 以不同的方式设置值?
- 查询后是否需要将值从 1 转换为 TRUE,将 0 转换为 FALSE?
- get请求后需要在前端翻译值吗?
我尽量避免使用 4. 除非这不是最划算的,因为我的前端已经期望到处都是布尔值(我将数据库切换到 MySQL)。
尝试使用 !!
他们会将值转换为布尔类型。
它等同于:Boolean(anyValue)
.
users.filter(u => !!u.infected);
我的 MySQL 数据库中有一些列(infected
和 absence
)存储为 TINYINT(1)
.
当我做一个简单的
app.get("/users", (req, res) => {
const sql = `SELECT * from users`;
connection.query(sql, (err, results) => {
if (err) {
return res.send(err);
} else {
return res.json({ results });
}
});
});
在我的后端和一个
useEffect(() => {
axios
.get(`${config.server}/users`)
.then((result) => {
setUsers(result.data.results);
})
.catch((error) => console.error(error));
}, [setUsers]);
在我的 ReactJS 前端中,我无法执行以下操作:
users.filter((u) => u.infected);
只有
users.filter((u) => u.infected === 1);
正在工作。
因为使用 users.filter((u) => u.infected);
对我来说更直观,我想知道,在最佳实践中我该如何处理这个问题?
- 我需要用另一种类型存储我的值吗?
- 我是否需要 SELECT 以不同的方式设置值?
- 查询后是否需要将值从 1 转换为 TRUE,将 0 转换为 FALSE?
- get请求后需要在前端翻译值吗?
我尽量避免使用 4. 除非这不是最划算的,因为我的前端已经期望到处都是布尔值(我将数据库切换到 MySQL)。
尝试使用 !!
他们会将值转换为布尔类型。
它等同于:Boolean(anyValue)
.
users.filter(u => !!u.infected);