在 TypeORM 中从数据库 table 中找到一个实体
Find one entity from database table in TypeORM
我在我的 express.js 项目中使用 TypeORM。
我想知道在 TypeORM 中,如何在不提供任何条件的情况下从数据库中找到一个实体,我只需要从数据库中获取一个实例 table。
例如,我有一个 students
table 映射到 Student
实体。我试过了:
const student = await Student.find()[0];
但它不起作用。有什么建议吗?
P.S。找到学生后,我需要访问其 ID,例如const sid = student.id
我正在使用 sid
构建数据作为响应的有效载荷。例如const payload={'student_id': sid, ...}
您可以通过将空对象作为参数传递来尝试使用 findOne 方法。
const student = await Student.findOne({})
您也可以使用当前的方法,但必须确保在访问数组索引之前将 await 括在括号中。
const student = (await Student.find())[0];
但请注意,find() 将读取所有数据库,而 findOne() 只会读取一次。
更新
为避免类型问题,您可以添加类型保护。
if(!student){
// return or send error as response.
return;
}
我在我的 express.js 项目中使用 TypeORM。
我想知道在 TypeORM 中,如何在不提供任何条件的情况下从数据库中找到一个实体,我只需要从数据库中获取一个实例 table。
例如,我有一个 students
table 映射到 Student
实体。我试过了:
const student = await Student.find()[0];
但它不起作用。有什么建议吗?
P.S。找到学生后,我需要访问其 ID,例如const sid = student.id
我正在使用 sid
构建数据作为响应的有效载荷。例如const payload={'student_id': sid, ...}
您可以通过将空对象作为参数传递来尝试使用 findOne 方法。
const student = await Student.findOne({})
您也可以使用当前的方法,但必须确保在访问数组索引之前将 await 括在括号中。
const student = (await Student.find())[0];
但请注意,find() 将读取所有数据库,而 findOne() 只会读取一次。
更新 为避免类型问题,您可以添加类型保护。
if(!student){
// return or send error as response.
return;
}