相关疑难解决方法(0)

非法中断语句(Node.js)

尝试在Node.js和MongoDB中查找唯一ID,方法是创建一个while循环,在MongoDB中查询现有ID,直到找到唯一值.如果ID已在使用中,则数字会在末尾递增,直到Mongo不返回任何内容.

一切正常,除了break;找到唯一ID 的声明.Node.js返回:SyntaxError: Illegal break statement

代码:

db.collection('landmarks').findOne({'id':uniqueIDer}, function(err, data){
    //if ID exists already
    if (data.id){

        var uniqueNumber = 1;

         while (1) {

            var uniqueNum_string = uniqueNumber.toString(); 
            var newUnique = data.id + uniqueNum_string;
            db.collection('landmarks').findOne({'id':newUnique}, function(err, data){

                if (data.id){
                    uniqueNumber++;
                }

                else {
                    saveLandmark(newUnique);
                    break;
                }
            });
        }
    }

    else {
        saveLandmark(uniqueIDer);
    }

});
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:

这是使用异步的固定代码,如果有人需要它:)

        db.collection('landmarks').findOne({'id':uniqueIDer}, function(err, data){

            if (data){
                var uniqueNumber = 1;
                var newUnique;

                async.forever(function (next) {
                  var uniqueNum_string = uniqueNumber.toString(); 
                  newUnique = data.id …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous while-loop mongodb node.js

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

asynchronous ×1

javascript ×1

mongodb ×1

node.js ×1

while-loop ×1