touch src/models/user.js
import pool from '../db/index.js';
export async function createUser({ name, email, password_hash }) {
const result = await pool.query(
`INSERT INTO users (name, email, password_hash)
VALUES ($1, $2, $3)
RETURNING user_id, name, email, created_at`,
[name, email, password_hash],
);
return result.rows[0];
}
export async function findUserById(userId) {
const result = await pool.query(
`SELECT user_id, name, email, created_at
FROM users
WHERE user_id = $1`,
[userId],
);
return result.rows[0] || null;
}
export async function findUserByEmail(email) {
const result = await pool.query(
`SELECT user_id, name, email, created_at
FROM users
WHERE email = $1`,
[email],
);
return result.rows[0] || null;
}
export async function findUserByEmailWithPassword(email) {
const result = await pool.query(
`SELECT user_id, name, email, password_hash, created_at
FROM users
WHERE email = $1`,
[email],
);
return result.rows[0] || null;
}
git add .
git commit -m 'Adds user model'
Next:
Write session middleware