просматривая документы node-mssql v4, они использовали это в качестве примера, используя обратные вызовы:
const sql = require('mssql');
const config = {
user: '...',
password: '...',
server: 'localhost',
database: '...',
pool: {
max: 10,
min: 0,
idleTimeoutMillis: 30000
}
};
const pool = new sql.ConnectionPool(config);
const transaction = new sql.Transaction(pool);
transaction.begin(err => {
// ... error checks
const request = new sql.Request(transaction)
request.query('insert into mytable (mycolumn) values (12345)', (err, result) => {
// ... error checks
transaction.commit(err => {
// ... error checks
console.log("Transaction committed.")
})
})
})
EDIT: кажется, что node-mssql использует request.input для экранирования значений, но не принимает объект js, вы можете быстро сделать свой собственный:
sql.connect(config, err => {
var post = {srcUserID: userSrcID, destUserID: msg.userid, messageContent: msg.txt, messageSendDate:sendDate };
const request = new sql.Request();
let cols = [];
let inputs = [];
for(let k in post) {
request.input(k, post[k]);
cols.push(k);
inputs.push('@' + k);
}
let query = `insert into messages (${cols.toString()}) values (${inputs.toString()})`;
request.query(query, (err, result) => {
//stuff here
});
});