Я использую node express mssql для запроса к БД для получения некоторых данных.Данные, которые я пытаюсь отправить, представляют собой строку с запятой.Но БД распознает их как целые, потому что они идентификаторы.Проблема в том, что мой запрос распознает только первое целое число, а не что-нибудь после, поэтому, например, он распознает только 10 -> (10,11,12).Но мне нужно отправить все три идентификатора.
route.js
router.get('/', (req, res) => {
connectPool.then(pool => {
let projectId = req.query.id
let newAr = new Array();
let cpnew = 0
newAr = projectId.split(',')
for(a in newAr){
newAr[a] = parseInt(newAr[a])
}
console.log(newAr, 'logging new array')
for(let i=0; i<newAr.length;i++){
console.log(newAr, newAr[i], 'logging info')
if(newAr.length - 1 == i){
cpnew += newAr[i]
} else if(i == 0){
cpnew = newAr[i] + ','
}
else {
cpnew += newAr[i] + ','
}
}
let sqlString = `
SELECT p.Name
FROM Projects p with (nolock)
WHERE p.ProjectsID IN ((@projectId))
`
return pool.request().input('projectId', sql.Int, cpnew).query(sqlString)
}).then(result => {
let rows = result.recordset[0]
res.status(200).json(rows);
sql.close();
}).catch(err => {
res.status(500).send({ message: err})
sql.close();
});
})
Итак, в основном я делаю правильно, потому что возвращаю запрос, меняя строку с разделителями-запятыми -> 10,11,12 на массив с целыми числами -> [10,11,12], затем изменив его на целые с запятыми между 10,11,12.Затем поместите это в переменную в мою строку.Я мог бы быть далеко отсюда, но я потерян в этот момент.Спасибо!