Как получить разрешенное обещание в разделе экспорта по умолчанию - PullRequest
0 голосов
/ 20 мая 2019

Я не могу получить результат разрешенного обещания в разделе экспорта по умолчанию.

Привет, разработчики. Я новичок в JavaScript и у меня проблемы с обещаниями и разделом экспорта по умолчанию. Я хэширую пароль, но не могу получить значение в массиве моих пользователей. Я могу получить пароль на своей консоли, и я хочу использовать этот массив в моих контроллерах, чтобы заполнить его другими пользователями с помощью почтальона.

Мой модуль userModel , который я импортирую в мои контроллеры.

import hasher from '../helpers/password'; 

const adminPassword = async () =>{
    const hashedPwd = await hasher.hashingPassword('john124', 10);
    console.log(hashedPwd); 
    return hashedPwd;   
};


 export default [
     {
        id: 1, 
        first_name: 'john', 
        last_name: 'doe', 
        email: 'john@gmail.com', 
        password: adminPassword(),
        address: 'kigali', 
        is_admin: true  
    }
]

Тело ответа от Почтальона

{
    "status": 200,
    "message": "Successfully Signed Up",
    "data": [
        {
            "id": 1,
            "first_name": "john",
            "last_name": "doe",
            "email": "john@gmail.com",
            "password": {},
            "address": "kigali",
            "is_admin": true
        },
        {
            "id": 2,
            "email": "james@gmail.com",
            "first_name": "james",
            "last_name": "mes",
            "password": "$2a$10$XXCc4oMwawyWZMzJJdUyq.Z.l9YobO3jicg6x7qNN/v7.94c9qVg.",
            "address": "kinshasa",
            "is_admin": false
        }
    ]
}

Консольный вывод

[ { id: 1,
    first_name: 'john',
    last_name: 'doe',
    email: 'john@gmail.com',
    password:
     Promise {
       '$2a$10$a575M8tm1b8QdkH./V0zSuxGUV43OapBzehXyH9CkpypqAr0hmsPK' },
    address: 'kigali',
    is_admin: true } ]

Как я могу получить только хешированную строку в качестве моего пароля? Заранее спасибо.

1 Ответ

0 голосов
/ 20 мая 2019

экспорт обрабатывается синхронно.Это невозможно сделать сразу.Вы могли бы иметь экспорт, в конечном итоге превратившийся в хешированный пароль (и, возможно, сначала он вернет null), но это был бы довольно плохой подход.

Разумный способ сделать этоэто не вернуть объект, а вернуть обещание, которое разрешается в ваш полный объект:

const result = adminPassword.then( hash => {
  return {
    id: 1, 
    first_name: 'john', 
    last_name: 'doe', 
    email: 'john@gmail.com', 
    password: hash,
    address: 'kigali',
    is_admin: true  
  };
});
export default result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...