【发布时间】:2020-09-23 09:15:59
【问题描述】:
我正在尝试将通过查询获得的数据转换为 json 格式的 SQL 数据库,以便通过我的 REST API 中的查询发送。
const express = require('express');
const Request = require('tedious').Request;
const app = express(); // creo mi app
const db = require('./db'); // conexion a la db
app.get('/series', (req, res) => {
const request = new Request(`SELECT VALOR1,VALOR2 FROM DATABASE`, (err, rowCount, rows) => {
if (err) {
console.error(err.message);
} else {
console.log(`${rowCount} row(s) returned`); // APARECE VALOR 63
};
jsonArray = [];
rows.forEach(function(columns) {
var rowObject = {};
columns.forEach(function(column) {
rowObject[column.metadata.colName] = column.value;
});
jsonArray.push(rowObject);
});
res.json(jsonArray);
});
db.execSql(request);
});
但是当我发出 Get 请求(使用 potman 和在浏览器中)时,结果是 [](内部没有任何值)。我试过用 res.send() 函数发送,结果是一样的。
错误可能在哪里?
提前致谢:)
PD:我的文件 db.js 中的代码
const {Connection} = require("tedious");
// Create connection to database
const config = {
authentication: {
options: {
userName: "users", // update me
password: "users" // update me
},
type: "default"
},
server: "srvdesarrollo", // update me
options: {
database: "users", //update me
encrypt: false
}
};
const connection = new Connection(config);
module.exports = connection;
【问题讨论】:
-
我认为您可以通过在
forEach循环中添加console.log以及在发回响应之前轻松调试此问题。所以你会看到你从数据库中得到了什么,以及forEach内部发生了什么,并希望找出问题所在。 -
我可以通过添加 console.log 轻松调试,但这并不能解决错误。 JSON 格式正确,但返回时显示为空 ([])
-
因此,如果它的形成正确,问题不在于您提供的代码,而在于前端。
标签: javascript node.js json sql-server express