Я использую узел и express в этом проекте, и у меня возникают проблемы со сбором данных из базы данных и помещением данных в объект с именем User.
Какую ошибку я совершаю, чтобы предотвратить sql данные о внесении в resp.rows [0]?
Я провел несколько «тестов», таких как run console.log (resp); и console.log (resp.rows [0]) ;. Оба подтверждают, что resp.rows [0] пуст и не определен. И я не уверен, почему, так как некоторые из них уже работают нормально.
Просто для справки, этот работает:
//retrieve all users export async function getAllUsers(): Promise<User[] | any>{
const client=await pool.connect();
try {
const resp= await client.query(`
SELECT account_id, username, password_hash, email, account_type_id
FROM account
`);
const users: User[] = [];
resp.rows.forEach((userResult: SqlUser) => { console.log(userResult); users.push(userConverter(userResult))
});
return users;
} catch (error) {
console.log(error);
//return error.message;
} finally {
client.release();
} }
Однако этот не работает, и я понятия не имею, почему.
// get a user by username/password export async function getUserByUsernameAndPassword(
username: string,
password_hash: string
): Promise<User | any> {
const client=await pool.connect();
try {
const resp=await client.query(`
SELECT account_id, username, password_hash, email, account_type_id FROM account
WHERE username=$1 AND password_hash=$2`,
[username, password_hash]);
const user: User = userConverter(resp.rows[0]); return user;
} catch (error) {
console.log(error);
//return error.message;
} finally {
client.release();
} }
Это ошибка, которую я получаю от getUserByUsernameAndPassword ():
TypeError: Cannot read property 'account_id' of undefined at Object.userConverter
(C:\GitFolder\project1\server\util\converters\userConverter.ts:6:11) at Object.<anonymous>
(C:\GitFolder\project1\server\dao\user-dao.ts:61:36) at Generator.next (<anonymous>) at fulfilled
(C:\GitFolder\project1\server\dao\user-dao.ts:5:58) at processTicksAndRejections (internal/process/task_queues.js:97:5)
Может предоставить больше кода по запросу