неопределенная переменная в node.js с запросом mon goose - PullRequest
0 голосов
/ 01 апреля 2020
let customer_count;
let cust_string;
Customer.count({}, function(err, count){ customer_count = count+1; cust_string = 'cust' + customer_count });

        // Create a customer object with escaped and trimmed data.
        var customer = new Customer(
          { customerId: cust_string})

Я хотел бы создать собственный идентификатор клиента для индекса моей модели. Я хочу, чтобы id был похож на 'cust0001', а следующий будет 'cust0002'. Итак, я использовал count () из mon goose, чтобы присоединиться к строке, но, к сожалению, когда я создаю объект customer, 'cust_string' называется неопределенным. Не могли бы вы помочь мне исправить это?

1 Ответ

0 голосов
/ 01 апреля 2020

Обратный звонок ничего не возвращает. Вы должны создать клиента внутри той же функции, которую рассчитываете cust_string. Другой вариант - использовать обещания / async / await et c.

Ваш код будет работать следующим образом:

let customer_count;
let cust_string;

Customer.count({}, function (err, count) {
    // calculate id
    customer_count = count + 1;
    cust_string = 'cust' + customer_count;

    // Create a customer object
    var customer = new Customer({ customerId: cust_string });
});

Но это не очень хороший способ реализовать автоинкремент в MongoDB. Это будет очень дорогая операция.

Я рекомендую использовать mon goose -auto-increment . Сохраняет последовательности в базе данных и предотвращает дублирование ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...