РЕШЕНИЕ НАЙДЕНО: Мне пришлось изменить res.send (result.recordsets) на res.send (result.recordset) в моем sqlCommand.Select, а затем использовать res.send (obj [keys [1]] ["userid"]).Спасибо!
Я новичок в Node Js и JavaScript в целом.Я строю конечные точки, которые будут запрашивать мой SQL-сервер для набора результатов.Затем я хочу взять набор результатов из моей конечной точки и сохранить его в другой базе данных.
Я могу получить весь набор результатов из моей экспресс-функции в формате массива.Я с трудом разбираю детали каждого ключа в объекте массива.Обратите внимание, я использую Express.
Я пытался использовать JSON.Stringify, а затем JSON.Parse в моем наборе результатов, но детализация моих объектов возвращается как неопределенная.Вот код ниже:
Вот начальная конечная точка:
app.get('/getAll', (req, res) =>{
sqlCommand.Select("select * from usertable", res)
})
Вот весь sqlCommand.Select
exports.Select = function(sql, res){
conn.connect().then
(function() {
var req = new sqlDb.Request(conn);
req.query(sql).then(
function(result) {
if (result.rowsAffected > 0){
res.send(result.recordsets)
}else{
res.send({"Result": "No results Found"})
}
res.end()
conn.close()
}
).catch(function (err) {
console.log(err)
res.send({"Result": "Incorrect query"})
res.end()
conn.close()
})
})
Здесь я пытаюсьвызовите конечную точку и проанализируйте ее результаты, чтобы позже я мог просмотреть ее:
app.get('/insert', (req, res) => {
Request.get("http://localhost:3001/getAll", (error, response, body) => {
if(error){
throw error
}else{
var obj = JSON.parse(body);
var keys = Object.keys(obj);
for (i = 0; i < keys.length; i++){
res.send(obj[keys[i]])
console.log(obj[keys[i]])
}
}
res.end()
});
})
Вот наборы результатов SQL (это все демонстрационные данные):
[
{
"id": 1,
"userid": "abc",
"password": "test"
},
{
"id": 2,
"userid": "efg",
"password": "test2"
},
{
"id": 3,
"userid": "ijk",
"password": "test3"
}
]
Я получаю результатыдля каждого ключа, если я просто запускаю "res.send (obj [keys [i]])" в моей функции "/ insert"
Однако, я получаю "undefined", если я пытаюсь что-то вроде:
res.send(obj[keys[i]]["userid"]]
или
res.send(obj[keys[i]].userid)
Я надеялся увидеть данные, соответствующие "userid"поле для позиции" я ".
Любая помощь очень ценится.