Доступ к данным от Postgresql до узла / express: resp.rows [0] не определен - PullRequest
0 голосов
/ 19 апреля 2020

Я использую узел и 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) 

Может предоставить больше кода по запросу

...