Раньше я использовал очень полезную библиотеку pg-обещания в моем приложении Express, теперь мне нужно конвертировать в SQL Server.
Наиболее похожая библиотека, которую я могу найти для достижения аналогичного результата, - это express4-tediousпакет.Я могу заставить эту работу работать с простыми запросами, однако я не могу понять, как манипулировать возвращенным json до возврата результата.
app.get('/heatmapData', function(req, res) {
db.manyOrNone(`
SELECT
id
, metricname
, metricval as value
, backgroundcolor as fill
, suggestedtextcolor as color
, heatmapname
FROM
heatmapdata a
INNER JOIN
heatmapcolors b
ON
a.heatmapset = heatmapname and a.heatmapnumber=b."Order"
`)
.then(function(data) {
let bob = {}
data.map(item => {
if (bob[item.metricname] === undefined) {
bob[item.metricname] = {};
}
bob[item.metricname][item.id] = {
fill: item.fill,
color: item.color,
value: item.Value
};
bob[item.metricname].heatmapname = item.heatmapname;
})
res.status(200).json(bob);
});
});
При преобразовании этого в SQL-сервер я могу использовать FOR JSON PATH, чтобы вернуть хороший объект javascript, однако в express4-tedious у меня есть следующий синтаксис:
req.sql('that previous big sql statement...').done(
(data)=>{
console.log('this is meant to manipulate the data');
return data
})
.into(res)
Однако, это не совсем возвращает ожидаемый результат.Любые указатели в правильном направлении будут очень полезны!