我正在使用rethinkdb將用戶添加到用戶表中。我將用戶添加得很好,我在數據資源管理器中看到了正確的數據。我現在有點難以忍受,一旦有人添加新的用戶名以查看它是否存在,我該如何檢查數據庫,如果有,請添加新用戶。我想我可以從數據庫中抓取所有當前用戶,並根據我要添加的新用戶名進行循環檢查。下面是我想:檢查用戶是否存在於Rethinkdb數據庫中
router.post('/signup', (req, res) => {
let newUser = req.body.username,
currentUsers = [];
r.db('base').table('users')
.then((users) => {
users.forEach((user) => {
currentUsers.push(user.username)
});
}).then(() => {
if (currentUsers.length === 0) {
addUser(req.body);
}
currentUsers.forEach((name) => {
if (newUser !== name) {
console.log('new user added!');
addUser(req.body);
}
if (newUser === name) {
console.log('user exists!');
}
}); // end forEach()
}); // end last .then()
function addUser(user) {
Users.create(user, (error, response) => {
if (error) return res.end();
});
} // end addUser(user)
}); // end router.post()
我的想法在這裏處理是在數據庫中是空的,調用函數的adduser添加用戶名第一。這很好,但是當我嘗試添加多個新用戶時,情況變得糟糕。假設我在數據庫中有用戶名丹。如果我再次嘗試添加丹,它的時候它不應該運行ADDUSER功能和控制檯給了我兩個消息:
user exists!
new user added!
它也將開始雙重和三重和等數據庫的名字,每次我嘗試添加新用戶。我在這裏做錯了什麼?我對rethinkdb有點新,所以我想我只是做錯了。我能得到的任何幫助都會很棒。多謝你們。
哦,這是偉大的!非常感謝您在這裏的回答。我不知道我甚至可以做到這一點。加上所有在一行是真棒=) –