here’s the part related to query execution
const sql = require('msnodesqlv8');
const connectionString = "******************************";
function exeQuery(query, params, callback) {
console.log('Executing query:', query);
console.log('Query parameters:', params);
sql.query(connectionString, query, params, (err, result) => {
if (err) {
console.error('Error executing query:', err);
callback(err, null);
} else {
console.log('Query executed successfully. Result:', result);
callback(null, result);
}
});
}
module.exports = exeQuery;
and here’s the endpoint
// Route to view mobile logs
router.get('/viewMobileLogs/:mobileNumber', (req, res) => {
const mobileNumber = req.params.mobileNumber;
const query = `EXEC [dbo].[GetMobileLog] @MobileNum = ?`;
exeQuery(query, [mobileNumber], (err, result) => {
if (err) {
console.error('Error fetching mobile logs:', err);
return res.status(500).json({ error: 'Internal Server Error' });
} else {
return res.json(result);
}
});
});
and here’s the logs:
[nodemon] starting `node app.js`
Server is running on port 3000
Redis Connected Successfully
Executing query: EXEC [dbo].[GetMobileLog] @MobileNum = ?
Query parameters: [ '01639521598' ]
Query executed successfully. Result: []
GET /EmployeeMobiles/viewMobileLogs/01639521598 200 1084.553 ms - 2
Query executed successfully. Result: [
{
LDate: 2023-05-05T16:20:00.000Z { nanosecondsDelta: 0 },
UserName: 'John Doe',
ActionText: 'New bill added (New Bill)'
}
]
node:_http_outgoing:652
throw new ERR_HTTP_HEADERS_SENT('set');
^
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (node:_http_outgoing:652:11)
at ServerResponse.header (C:Usersmohamed.eltananyDesktopemployees_bills_backnode_modulesexpresslibresponse.js:795:10)
at ServerResponse.send (C:Usersmohamed.eltananyDesktopemployees_bills_backnode_modulesexpresslibresponse.js:175:12)
at ServerResponse.json (C:Usersmohamed.eltananyDesktopemployees_bills_backnode_modulesexpresslibresponse.js:279:15)
at C:Usersmohamed.eltananyDesktopemployees_bills_backroutesemployeeMobilesRoutes.js:67:24
at ChunkyArgs.callback (C:Usersmohamed.eltananyDesktopemployees_bills_backconfiganotherAsyncConnection.js:14:13)
at C:Usersmohamed.eltananyDesktopemployees_bills_backnode_modulesmsnodesqlv8libsql-client.js:82:18
at Immediate.<anonymous> (C:Usersmohamed.eltananyDesktopemployees_bills_backnode_modulesmsnodesqlv8libconnection.js:218:9)
at process.processImmediate (node:internal/timers:478:21) {
code: 'ERR_HTTP_HEADERS_SENT'
}
Node.js v20.11.0
[nodemon] app crashed - waiting for file changes before starting...
i’m trying to understand why the behaviour occurs as according to the logs firstly the result is [] and based on it the server respond but then the resultSet is here and i get ERR_HTTP_HEADERS_SENT.