J'ai besoin d'insérer une chaîne définie en Javascript dans une table MSSQL.Comment créer une instruction préparée dans Node.JS pour MSSQL?
C'est ce que j'ai jusqu'à présent:
Javascript:
var message = "It's a great day today!";
$.post('www.server.com/message='+message, function(response){
console.log(response);
});
Node.js Serveur:
//..... a bunch of code has been used to accept the HTTP request and get the message...
// for the purpose of this example, the message is asigned to 'NodeMsg'
var mssqldb = require("../core/mssql");
var NodeMsg = theMessageReceivedFromHTTPRequest;
function saveMessage(message) {
mssqldb.executeMssql("insert into messages (message, status) VALUES('"+message+"', 'new')", function (err) {
if (err) {
httpMsgs.show500(req, resp, err);
}//end if
else {
httpMsgs.sendJson(req, resp, 'success');
}//end else
});
};
mssql.js (Node.js fichier):
var mssqldb = require("mssql");
var settings = require("../settings");
exports.executeMssql = function(sql, callback) {
var conn = new mssqldb.Connection(settings.mssqlConfig);
conn.connect()
.then(function(){
var req = new mssqldb.Request(conn);
req.query(sql)
.then(function (recordset) {
callback(recordset);
})
.catch(function(err){
console.log(err);
callback(null, err);
});
})
.catch(function(err){
console.log(err);
callback(null, err);
});
};//end executeMssql
Résumé de ce qui se passe:
- Je définit un message sous forme de chaîne. (Notez qu'il contient une citation unique)
- J'envoie cette chaîne au serveur Node.js
- J'utilise Node.js pour envoyer la chaîne à MSSQL
Le problème: Après avoir appris plus sur le programme orienté objet, j'ai réalisé que la façon dont j'effectue l'insertion est fortement désapprouvée car elle est ouverte à l'injection SQL. En outre, le code se casse pendant l'exécution de la requête SQL en raison de la citation unique dans la chaîne.
La solution: Selon la plupart des ressources que j'ai trouvées, la solution consiste à utiliser des «instructions préparées».
Ma question:
Comment diable puis-je convertir ce que je l'ai déjà fait, d'utiliser des déclarations préparées? J'ai cherché sur le web des heures et je ne peux pas trouver un bon exemple de comment faire une déclaration préparée avec Node.JS pour MSSQL (pas MySQL) qui est compréhensible pour un débutant à Node.Js