Я получил неполные данные из запроса на получение. Я думаю, это потому, что 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);
});
}