Gör inte det
Du frågar om fel lösning på problemet.
För att ersätta apostroferna med snedstreck-apostroferna kan du använda:
str = msg.replace(/'/g, '\\\'');
men du bör inte göra det . Jag ger bara den informationen eftersom det är vad din fråga frågar om, men läs nedan.
Varför det är en dålig idé
Du ska inte göra det på klientsidan och du ska inte göra det på serversidan heller. Om att undvika SQL-injektionssårbarheter var en enkel fråga om att ersätta apostrof med backslash-apostrof så skulle det inte vara ett problem. Tyvärr är det mer komplicerat.
Med den information du gav är det till och med omöjligt att avgöra om backslash-apostrophe ens skulle göra vad du förväntar dig i första hand utan att se din kod som faktiskt gör databasens frågor. Men det spelar ingen roll för det ska du aldrig göra. Aldrig. Se dessa svar för att se varför - de frågorna handlar inte om SQL-injektioner men kodexemplen inkluderade SQL-injektionssårbarheter och svaren förklarar det:
- kan inte använda backtick när du använder nodejs 7.3.0
- Node js - Varning för avvisande av löfte vid bearbetning av mycket data
- Är det möjligt att lyssna efter objektinstansiering i Node.js?
Obligatorisk serietidning
Vad du bör göra istället
Som sagt, du berättade inte vilken modul du använder för att fråga databasen men oavsett om du använder mysql
modul eller Sequelize eller något som är värt sitt salt, bör det alltid finnas en mekanism för att interpolera variabler på ett säkert sätt utan att manuellt fly och sammanfoga strängarna.
Exempel
Du visade inte ens en enda kodrad som är relevant här så jag kan inte berätta för dig hur du fixar det men tänk på det här exemplet:
Osäkert:
connection.query(
"SELECT * FROM player WHERE nick = '"
+ data.login + "' AND pass = '" + data.pass + "'",
function (err, rows) {
//...
}
);
Fortfarande osäker, komplex, oläsbar, ohållbar och opålitlig:
connection.query(
"SELECT * FROM player WHERE nick = '"
+ data.login.replace(/'/g, '\\\'') + "' AND pass = '" + data.pass.replace(/'/g, '\\\'') + "'",
function (err, rows) {
//...
}
);
Säkert och enkelt:
connection.query(
"SELECT * FROM player WHERE nick = ? AND pass = ?", [data.login, data.pass],
function (err, rows) {
// ...
}
);
Mer information
För mer information se dokumenten: