Загрузка функций с обратными вызовами в методе express get - PullRequest
0 голосов
/ 19 февраля 2020

Я использую tedious и у меня есть такая рабочая функция: учитывая, что это asyn c, я использую функцию обратного вызова, чтобы получить данные вне функции. Но браузер зависает, это работает, если я просто загружаю функцию вне запроса.

Пробовал другие функции, и он работает, но не уверен, что пропущен кусок с этим вызовом.

const config = {
    server: 'server',
    authentication: {
    type: 'default',
    options: {
      userName: 'usernane',
      password: 'password'
    }
  },
  options: {
    encrypt: false,
    database: 'database' 
}  
};

const connection = new Connection(config);

module.exports = {

    getDataById: (id, callback) => {

        const data = [];

        connection.on('connect', function (err) {
            if (err) {
                console.log(err)
            } else {

                var request = new Request("store proc", (err) => {

                    if (err) {
                        console.error(err.message);
                    }
                    connection.close();
                });

                request.on("row", columns => {

                    columns.forEach(column => {
                        data.push({
                            name: column.metadata.colName,
                            value: column.value
                        });
                    });

                    callback(data);

                });

                request.addParameter('RecordId', TYPES.BigInt, id);
                connection.callProcedure(request);

            }
        });
    }

В приложении. js

Я вызываю этот метод в запросе get:

app.get('/load', (req, res) => {

  getDataById(someid, (data) => {

    res.send(data);

  });

});

В браузере висит:

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