如何从数组中提取对象?

时间:2018-11-19 16:26:49

标签: javascript arrays node.js extract

我有以下代码,其中来自伪数据库的用户名是必需的:

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

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

下一个是“数据库”(my_db.js):

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

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

我不知道如何从用户那里获得用户名是jdoe2的用户。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您有几件事会引起问题。

首先使用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)