POST данные в MySQL с NodeJS и Почтальон - PullRequest
0 голосов
/ 03 июля 2019

Я новичок в целом и пытаюсь использовать 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.log(err);
  });
})

С помощью данного кода я могу добавить через Почтальон запись, но пустую. Я уже пытался присвоить свои значения клавишам после VALUES, но, возможно, мой синтаксис был неправильным

Ответы [ 4 ]

0 голосов
/ 03 июля 2019

Предполагается, что вы используете этот модуль .


db.query(sql, [id, firstname, surname]

Здесь вы передаете переменные в ваш запрос, чтобы они заменили значения заполнителей.


let sql = "INSERT INTO `users_tbl` VALUES (id, firstname, surname)";

Но здесь вы просто поместили имена столбцов вместо маркеров-заполнителей.

Измените это на:

let sql = "INSERT INTO `users_tbl` VALUES (?, ?, ?)";

В сторону: у вас, вероятно, должно быть поле id, являющееся полем с автоинкрементом, а не пользовательским значением.

0 голосов
/ 03 июля 2019

В вашем sql-запросе вы передаете не переменные (идентификатор, имя и фамилия), а строку. я думаю, что это то, чего вы хотите достичь:

let sql = "INSERT INTO `users_tbl` (ID, firstname, surname) VALUES ("+id+", "+firstname+", "+surname+")";
0 голосов
/ 03 июля 2019
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.log(err);
    });
});

Попробуйте этот код просто заменить ваши значения? и снова запустите почтальона.

0 голосов
/ 03 июля 2019

Добавьте точку останова или используйте console.log, чтобы проверить, действительно ли вы получаете поля body в req.body. Попробуйте указать «Content-Type» в качестве application / json в заголовках при отправке запроса через почтальона и отправьте raw json в теле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...