[英]Check amount of certain value in array that is stored in mongodb with nodejs
[英]NodeJS/MongoDB Unique Value Check
我正在MEAN堆棧上開發一個短暫的加密聊天室,並且想知道如何最好地構造這段代碼...
我想要達到的目標:
我有這段代碼顯然不起作用,因為對數據庫的調用是異步的,並且會導致線程崩潰。
var chatroom = new Chatroom();
var roomid = random.generate(8).toUpperCase();
var unique = false;
while (!unique) {
Chatroom.count({roomid: roomid}, function (error, data) {
if (data < 1) {
chatroom.roomid = roomid;
chatroom.roomtitle = request.body.roomtitle;
chatroom.passphrase = request.body.passphrase;
unique = true;
}
});
}
chatroom.save(function (error) {
if (error) {
response.json(apiResponse('fail', error));
}
else {
response.json(apiResponse('success', chatroom));
}
});
關於如何更好地構建此代碼的任何建議?
我對MongoDB感到有些生疏,但這也許會有所幫助:
var chatroom = new Chatroom();
function generate() {
var roomid = random.generate(8).toUpperCase();
Chatroom.find({roomid: roomid}, function (error, data) {
if (data.length) {
chatroom.roomid = roomid;
chatroom.roomtitle = request.body.roomtitle;
chatroom.passphrase = request.body.passphrase;
save();
}
else {
generate();
}
});
}
function save () {
chatroom.save(function (error) {
if (error) {
response.json(apiResponse('fail', error));
}
else {
response.json(apiResponse('success', chatroom));
}
});
}
我通常發現遞歸是實現這些迭代解決方案的更好方法-至少更直觀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.