Как извлечь объект из массива? - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть этот код, где требуется имя пользователя от поддельной базы данных:

const MY_FAKE_DB = require('./my_db.js')  

const username = 'jdoe2'; 
const user = MY_FAKE_DB.users[username]; 
console.log(user.name, user.passwordHash)

И "dataBase" (my_db.js) следующий:

    const users =
{
    jdoe2: [{
        username: "jdoe2",
        name: "Jhoe",
        passwordHash: "1234"
    }],

    lmart: [{
        username: "lmart",
        name: "Luis",
        passwordHash: "2345"
    }]
}

Я не знаю, как получить от пользователей пользователя с именем jdoe2.

Спасибо за помощь

1 Ответ

0 голосов
/ 19 ноября 2018

У вас есть несколько вещей, которые вызывают проблемы здесь.

Сначала используйте require, вы должны export ваш объект из поддельной БД. Что-то вроде:

// my_db.js
const users = {
    jdoe2: {
        username: "jdoe2",
        name: "Jhoe",
        passwordHash: "1234"
    },

    lmart: {
        username: "lmart",
        name: "Luis",
        passwordHash: "2345"
    }
}

module.exports = users // export users

Обратите внимание, что я изменил базу данных. Вы определили каждого пользователя как массив, но это не имеет смысла, и вы не обращались к ним как к массивам. Здесь каждый пользователь представляет собой один объект.

Теперь, чтобы использовать его, вы можете require, и он должен работать как положено:

const users = require('./my_db.js')  // the exported users becomes the `users`

const username = 'jdoe2'; 
const user = users[username]; 
console.log(user.name, user.passwordHash)
...