For my Breeze Lakes Point project, I am using Prisma as the ORM to handle data in my PostgreSQL database. This is the ORM that we used with the sample app from the Frontend Masters workshop I attended, and I found it straightforward with great documentation.
I am working on a feature to find a specific user in the database and return the data for display in a registration form for editing. The basic findUnique
syntax is quite compact:
const data = await prisma.<model>.findUnique({
where: {
<lookupField>: <lookupValue>,
},
select: {
returnField1: true,
returnField2: true
},
});
Since I am still expanding my user
model, I implemented a simple return object:
const qry = <GUID value>
const data = await prisma.user.findUnique({
where: {
id: qry,
},
select: {
id: true,
username: true,
email: true,
firstName: true,
lastName: true
},
});
For the final returned object, I spread the data object to include a message to confirm the data returned to my route, since this is currently the same data that the session contains:
return { ...data, msg: "Found" };
With the basic framework in place to look up and return data via Prisma, I can work to expand both my user
model and the models planned to hold related data.