Во-первых, ваш код уязвим для sql внедрения . Я могу передать запрос, например «1 UNION DROP TABLE user», по пути «/ customer / update /» и в основном делать все, что захочу, с вашей БД.
Вам нужно собрать запрос следующим образом:
var sql = 'UPDATE customers SET someColumn = ?, someOtherColumn = ? WHERE id = ?';
Затем выполните запрос следующим образом:
var params = ['someValue', 'someOtherValue', 1];
connection.query(sql, params, function(err, result) {
if (err) { //do something
}
});
Теперь в вашем res.render вы пытаетесь передать 'select Name from customers where id='+req.params.id
, который установит значение name
равным запросу, а не результат запроса.
Если вы хотите передать результат запроса в шаблон, вам нужно будет выполнить дополнительный connection.query
. Это будет выглядеть примерно так:
var params = ['someValue', 'someOtherValue', 1];
connection.query(sql, params, function(err, result) {
if (err) { //do something
connection.query('SELECT name, email FROM user WHERE id = ?', [req.params.id], function(err, result) {
if (err) { //do something
res.render('/customers/edit', {
title: 'Edit Customer',
id: req.params.id,
name: result[0],
email: result[1]
});
}
});
}
});