Как получить вывод mssql в транспортире + VSCode - PullRequest
0 голосов
/ 16 апреля 2019

Я запускаю приведенный ниже код, похоже, что соединение установлено успешно, но я не вижу никаких выходных данных или есть какой-либо способ увидеть выходные данные результата запроса, я новичок в этом узле транспортира JS MSSQL-соединение.

const assert = require("../configuration.js");
const { config } = require("dotenv");
const { ConnectionPool } = require("mssql");
var sql = require('mssql');

config();

const c = {
  driver: 'msnodesqlv8',
  server: "server/nameORIP",
  user: "UserName",
  password: "Password",
  database: 'DBname',
};

describe("mssql connection", () => {

  it('test query', () => {

    sql.connect(config, (err) => {

      if (err) console.log(err);

      // create Request object
      var request = new sql.Request();

      // query to the database and get the records
      request.query('select * from NetUsers', (err, recordset) => {

        if (err) console.log(err)
        // send records as a response
        request.send(recordset);
      });

    }); // end of sql.connect()

  }) // end of it
})

выход

Request {
  _events: [Object: null prototype] {},
  _eventsCount: 0,
  _maxListeners: undefined,
  canceled: false,
  _paused: false,
  parent: [Function: ConnectionPool],
  parameters: {},
  rowsAffected: 0 }

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Я наконец-то заставил его работать с небольшими изменениями, не только он подключается, но и запускает запрос и показывает мне вывод в консоли, еще раз спасибо за помощь.

import { async } from "q";
const sql = require('mssql/msnodesqlv8');
const assert = require("../configuration.js");

const poolPromise = new sql.ConnectionPool({
    driver: 'msnodesqlv8',
    server: "server/nameORIP",
    user: "UserName",
    password: "Password",
    database: 'DBname',
})
.connect()
  .then(pool => {
    console.log('Connected to MSSQL')
    return pool
  })
  .catch(err => console.log('Database Connection Failed! Bad Config: ', err))
;

describe('any test', () => {

    it('verification', async () => {

        try
        {
            const pool = await poolPromise;

            const result = await pool.request()
            .query('SELECT TOP (10) * FROM dbo.NetUsers')

            console.log(result);
        }
        catch(err)
        {
            console.log(err);
        }

    });


});
0 голосов
/ 18 апреля 2019

Я не нашел никакой информации по методу request.send(recordset); в их официальной документации.

Поддерживаемые методы в объекте запроса:

  1. execute - https://www.npmjs.com/package/mssql#execute
  2. input - https://www.npmjs.com/package/mssql#input
  3. output - https://www.npmjs.com/package/mssql#output
  4. труба - https://www.npmjs.com/package/mssql#pipe
  5. запрос - https://www.npmjs.com/package/mssql#query
  6. партия - https://www.npmjs.com/package/mssql#batch
  7. объем - https://www.npmjs.com/package/mssql#bulk
  8. отмена- https://www.npmjs.com/package/mssql#cancel

request.query функция выдаст вам список записей из БД и передаст его функции обратного вызова, а к значениям можно получить непосредственный доступ, используя

request.query('select * from NetUsers', (err, resultArray) => {
    if (err) console.log(err)
    // if no error
    console.log(resultArray.recordset[0]); //will print the first row from response.
  });

См .: https://www.npmjs.com/package/mssql#query-command-callback

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