В целом я новичок и пытаюсь использовать MySQL с nodeJS, чтобы иметь возможность интегрировать проекты в WordPress.
app.post('/users/add', (req, res) => {
id = req.body.id, firstname = req.body.firstname, surname =
req.body.surname
let sql = "INSERT INTO `users_tbl` VALUES (id, firstname, surname)";
db.query(sql, [id, firstname, surname],
(err, rows, fields) => {
if (!err)
res.send("User successfully added");
else
console.info(err);
});
})
С данным кодом я могу добавить через Postman запись, но пустую. Я уже пытался присвоить свои значения ключам после VALUES, но, возможно, мой синтаксис был неправильным.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Добавьте точку останова или используйте console.info, чтобы проверить, действительно ли вы получаете поля тела в req.body. Попробуйте установить «Content-Type» как application/json в заголовках при отправке запроса через почтальона и отправить необработанный json в теле.
app.post('/users/add', (req, res) => {
id = req.body.id,
firstname = req.body.firstname,
surname = req.body.surname
let sql = "INSERT INTO `users_tbl` (id, firstname, surname) VALUES
(?,?,?)";
db.query(sql, [id, firstname, surname], (err, rows, fields) => {
if (!err)
res.send("User successfully added");
else
console.info(err);
});
});
Попробуйте этот код, просто замените свои значения на ? и снова запустите почтальона.
Предполагая, что вы используете этот модуль.
db.query(sql, [id, firstname, surname]
Здесь вы передаете переменные в свой запрос, чтобы они заменили значения заполнителей.
let sql = "INSERT INTO `users_tbl` VALUES (id, firstname, surname)";
Но здесь вы просто поместили имена столбцов вместо маркеров-заполнителей.
Измените это на:
let sql = "INSERT INTO `users_tbl` VALUES (?, ?, ?)";
В сторону: вам, вероятно, следует, чтобы поле id было полем с автоинкрементом, а не значением, отправленным пользователем.
id = req.body.id, firstname = req.body.firstname, surname = req.body.surname- неявные глобальные переменные? Ой! Начните использовать ESLint как можно скорее.