0
0
Node.jsframework~20 mins

ORM concept (Sequelize, Prisma overview) in Node.js - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
ORM Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
What does ORM stand for and what is its main purpose?
Choose the correct definition and purpose of ORM in Node.js frameworks like Sequelize and Prisma.
AObject Reactive Model; it creates reactive objects for UI updates.
BOnline Resource Manager; it manages online resources like APIs and external services.
COperational Runtime Middleware; it handles middleware operations during runtime.
DObject-Relational Mapping; it helps convert data between incompatible systems by mapping objects in code to database tables.
Attempts:
2 left
💡 Hint
Think about how code objects relate to database tables.
component_behavior
intermediate
2:00remaining
What will be the output of this Prisma query?
Given this Prisma client code, what will be the value of 'users' after execution?
Node.js
const users = await prisma.user.findMany({ where: { age: { gt: 18 } } });
AAn array of user objects where each user is older than 18.
BA single user object with age exactly 18.
CAn empty array because no users are returned without explicit select.
DA count of users older than 18.
Attempts:
2 left
💡 Hint
Look at the 'findMany' method and the 'where' filter.
📝 Syntax
advanced
2:00remaining
Which Sequelize model definition is syntactically correct?
Select the option that correctly defines a Sequelize model for a 'Product' with 'name' as string and 'price' as float.
Asequelize.define('Product', { name: DataTypes.STRING, price: DataTypes.FLOAT });
Bsequelize.define('Product', { name: STRING, price: FLOAT });
Csequelize.define('Product', { name: Sequelize.STRING, price: Sequelize.FLOAT });
Dsequelize.define('Product', { name: 'string', price: 'float' });
Attempts:
2 left
💡 Hint
Remember to use DataTypes for field types in Sequelize.
🔧 Debug
advanced
2:00remaining
Why does this Prisma query throw an error?
Consider this Prisma query code snippet. Why does it throw a runtime error? const user = await prisma.user.findUnique({ where: { email: 'test@example.com' } }); console.log(user.name.toUpperCase());
ABecause 'findUnique' requires an 'id' field, not 'email'.
BBecause 'user' can be null if no record matches, so accessing 'name' causes an error.
CBecause 'toUpperCase()' is not a valid method for strings in JavaScript.
DBecause Prisma client does not support 'findUnique' method.
Attempts:
2 left
💡 Hint
Think about what happens if no user matches the email.
state_output
expert
3:00remaining
What is the final state of the database after this Sequelize transaction?
Given this Sequelize transaction code, what will be the final state of the 'Orders' table if an error occurs during the second create call? const t = await sequelize.transaction(); try { await Order.create({ item: 'Book', quantity: 1 }, { transaction: t }); await Order.create({ item: null, quantity: 2 }, { transaction: t }); // item cannot be null await t.commit(); } catch (error) { await t.rollback(); } What happens to the 'Orders' table?
ABoth orders are added, but the second has a null item field.
BOnly the first order is added because it was created before the error.
CNo new orders are added because the transaction is rolled back due to the error.
DThe transaction commits partially, adding the first order and ignoring the error.
Attempts:
2 left
💡 Hint
Remember how transactions work when an error occurs.