Я пытаюсь создавать и хранить имена пользователей и пароли в открытом виде. Я не делаю никакой проверки подлинности (я знаю, что могу использовать паспорт узла для этого и шифровать, но я просто изучаю 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");
}
}
'inArray' возвращает number, что это должно делать '$ .inArray (username, registerdUsers) == username' – elclanrs
Что это за' '' вещь? – Ryan
@minitech, я подозреваю lodash или подчеркивание –