Испытание TingoDB: Проблема, передающая глобальную переменную для вставки

Я тестирую и тестирую пару встроенных БД с помощью node.js. С TingoDB кто-нибудь знает, почему это работает

var test = { hello:'world' };
for (var j = 0; j < size; j++) {
    collection.insert(test, { w: 1 }, function () {})
}

но это не

for (var j = 0; j < size; j++) {
    var test = { hello:'world' };
    collection.insert(test, { w: 1 }, function () {})
}

То есть в первом случае база данных заполняется записями до sizeв то время как во втором случае добавляется только 1 запись.

1 ответ

Решение

Нет никакой разницы между обоими примерами кода, предоставленными вами.

Также, test является глобальной переменной в обоих случаях. for не создает свою область видимости, и из-за того, что ваши вторые примеры кода выглядят так:

var test;
for (var j = 0; j < size; j++) {
    test = { hello: 'world' };
    collection.insert(test, { w: 1 }, function () {});
}

Как видите, это почти как первый. Разница лишь в том, что он создает новый { hello: 'world' } объект и назначает его test переменная каждый раз. Так collection.insert получит одинаковые данные в обоих ваших примерах кода.

Я считаю, что проблема в коде, который вы здесь не предоставили.

Другие вопросы по тегам