Nodejs получить запрос вернуть неполные json данные назад - PullRequest
0 голосов
/ 06 марта 2020

Я получил неполные данные из запроса на получение. Я думаю, это потому, что JSON данные слишком велики и время ожидания.

Выводимый результат составляет только половину всех данных. Когда я отправил его обратно во внешний интерфейс и попытался изменить на json, используя JSON.parse(result), он не работает.

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

Вот мой код:

const { Connection, Request } = require("tedious");
var express = require("express");
var app = express();
var router = express.Router();
var sql = require("mysql");
const bodyParser = require('body-parser');
var http=require('http');
var url=require('url');
var qs=require('querystring');
app.use(bodyParser.json());

module.exports = router;

// set config to connect database

const connection = new Connection(config);

connection.on("connect", err => {
  if (err) {
    console.error(err.message);
  } 
});

router.get('/', async function(req, res, next) {
  console.log('------ backend get ------');
    var buttonDetail1 = req.query.buttonDetail1;
    var buttonDetail2 = req.query.buttonDetail2;
let result = await queryDatabase('Select * from xxx where xxx = \''+buttonDetail1+'\' and xxx = \''+buttonDetail2+'\' FOR JSON PATH',
(err, row, field) => {
    if (err) console.log(err);
    else {
      console.log(row);
    }
  })
  console.log(result);
  res.send({message: result});
});

function queryDatabase(query) {
    return new Promise((resolve, reject) => {
      console.log("Reading from the Table...");

      const request = new Request(query, (err, rowCount) => {
          if (err) {
            console.error(err.message);
            reject(err)
          } else {
            console.log('Inserted successfully');
          }
        }
      );

      request.on("row", columns => {
        columns.forEach(column => {
        //   console.log("%s", column.value);
          resolve(column.value);
        });
      });
      connection.execSql(request);
    });
  }
...