Reputation: 55
Quick edit - I am a complete beginner in web development, so I realize the solution might be stupidly obvious.
I'm attempting to insert a data set into a MySQL db through nodejs/expressjs/mysql.
I have a successful connection to the db and can query from it without issues.
Here is my post code:
app.post('/pyme', function(req,res){
console.log("Data being POSTED to db...");
var post = req.body;
console.log(post);
var sql_insert_pyme = 'INSERT INTO pyme(NombreComercio,NumeroTelefono) VALUES =?';
sql.query(sql_insert_pyme,post,function(err){
if(err) throw err;
});
});
The POST data I am getting looks as follows:
{ NombreComercio: 'Sebastian Avila',
NumeroTelefono: '71021714' }
I need a method to break that post into a simple:
"'Sebastian Avila', '71021714'"
Basically I want to end with:
post = "'Sebastian Avila', '71021714'"
Upvotes: 0
Views: 82
Reputation: 8467
You need to reduce a JSON object to an array (you can reduce it to string straight away, but array gives you more control over) and join it.
var postObject = {
NombreComercio: 'Sebastian Avila',
NumeroTelefono: '71021714'
}
var postArray = Object.keys(postObject).reduce(function(reduced, jsonKey) {
reduced.push("'" + postObject[jsonKey] + "'");
return reduced;
}, []);
var postString = postArray.join(',');
console.log(postString);
If you want query parameters to be dynamic, you can as well set Object.keys(postObject).join(',')
in columns names part of the query.
Upvotes: 1
Reputation: 6242
Try this
var postObject = {
NombreComercio: 'Sebastian Avila',
NumeroTelefono: '71021714'
}
var vals = Object.keys(postObject).map(function(key) {
return "'"+postObject[key]+"'";
});
console.log(vals.join(','))
Upvotes: 0