javascript - 如何验证数组中的对象?

标签 javascript arrays node.js object

我正在尝试以明文形式创建和存储用户名和密码。我没有进行任何类型的身份验证(我知道我可以使用 Node 护照来执行此操作并进行加密,但我只是在学习 javascript,所以我只是想尝试一下)

我有一个全局定义的对象,如下所示:

var obj= {username: req.body.username,
          password: req.body.password}

我正在推送到我的 RegisteredUsers 数组:

var registeredUsers = new Array();

我的问题是我希望能够执行以下操作:

   if((($.inArray(username, registerdUsers) == username && 
($.inArray(password, registerdUsers)) == password){     
    res.redirect("/?error=Already Registered"); 
    }

这不起作用,我如何检查对象的两个值以查看它们是否包含在我的数组中?

以下是我正在执行身份验证的功能,以防有人好奇:

function ensureAuthentication(req, res, next){
    //push object onto the registeredUsers array
    registeredUsers.push(obj);
    //if the user is already registered, throw error
    if (($.inArray(username, registeredUsers) && ($.inArray(password, registeredUsers)) {//obj.contains() username){
        res.redirect("/?error=Already Registered"); 
    }
    //if new user
    else{
        authentication.push(obj);
        console.log("added new user);
        //redirect to homepage
        res.rediret("/");
    }
}

function login(req, res) {
    //var username = req.body.username;
    req.session.username = username;
    req.session.password = password;
    loggedInUsers[username] = LoggedIn;
    if((($.inArray(username, registerdUsers) == username && ($.inArray(password, registerdUsers)) == password){
        //increase login count
        for(users in loggedInUsers){
            ++loginCount;
            console.log("Login Count: ", loginCount);
        }
        //redirect to login page
        res.redirect("/users")
    }
    else{
        //print out error message
        res.redirect("/?error=Error: incorrect username/password");
    }
}

最佳答案

通过用户名查找对象:

var user;

for(var i = 0; user = registeredUsers[i]; i++) {
    if(user.username === username)
        break;
}

检查密码:

var valid = user && user.password === password;

关于javascript - 如何验证数组中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19369368/

相关文章:

javascript - Gulp-Nodemon 监视更改并仅重新启动一次

javascript - 通过路由发送参数

javascript创建的模板元素不起作用

javascript - 获取元素名称的标准兼容方式

javascript - 无法在无状态组件 reactjs 中获取更新 redux 状态

javascript - 使用新文本更新占位符文本 onClick/onFocus

java - 使用Java将HSQLDB表中的数据转换为二维数组

javascript - 通过动态更改的变量键访问对象键

javascript - 在 JavaScript 中查找二维数组中的最大子数组

Node.JS 字符串仅匹配第一个字符