Как правильно использовать nodejs для размещения нескольких записей во вложенном массиве массивов в таблице mysql?

#javascript #mysql #arrays #reactjs #post

#javascript #mysql #массивы #reactjs #Публикация

Вопрос:

Я пытаюсь отправить массив объектов на сервер узла по протоколу https, который разместит их в таблице mysql, причина в том, что мне нужно вставить несколько строк. Из того, что я прочитал, я должен использовать вложенный массив. Но я не уверен, как обработать его после отправки на сервер узла. Ниже то, с чем я работаю:

Массив

 menuItems: [
                {
                    "id": 1234,
                    "item_name": 'meal',
                    "price": 6
                },
                {
                    "id": 1235,
                    "item_name": 'drink',
                    "price": 6
                }
            ],
  

Функция отправки

  sendMenuItems = (id, item_name, price) => {

        //translate array of objects to array of arrays
        const output = this.state.menuItems.map(function(obj) {
            return Object.keys(obj).sort().map(function(key) { 
              return obj[key];
            });
          });

        fetch(
         //HOW DO I FIT OUTPUT INTO MY POST REQUEST?
        `${x}/addMenuItem?id=${id}amp;item_name=${item_nameamp;price=${price}`,
        { method: "POST" }
        ).catch((error) => {
          console.log(error)
        })
    }
  

Сервер узлов

 app.post('/addMenuItem',  cors(), (req, res) => {
    
      var values = {
        id: req.query.id,
        item_name: req.query.item_name,
        price: req.query.price
       }

       let sql = 'INSERT INTO db.menu(id,item_name,price) VALUES ?';

       // now the createStudent is an object you can use in your database insert logic.
       pool.query(sql, values, function (err, results) {
        if(err) {
            console.log(err)
            return res.send(err)
            
        } else {
           
            return res.status(HttpStatus.OK).json({ message: 'ok', status: HttpStatus.OK })
        }
    });
});
  

Комментарии:

1. Похоже output , что переменная просто выбрасывается и не отправляется на сервер. Вы не включили это в запрос POST. Вам решать, как определить API addMenuItem, но один из вариантов — сделать пункты меню телом запроса. expressjs.com/en/api.html#req.body