Как отправить запрос массива с помощью Postman и обработать сценарий транзакции с помощью node.js для сохранения в MySql

В моем приложении для Android я пытаюсь отправить List<MyClass> list через Retrofit в базу данных моего сервера. Достигнуты некоторые веб-сервисы и сценарии, но с запросом в массиве мне нужна рука. Мне нужно знать, как отправить запрос от почтальона и обработать его с помощью скрипта (node.sj)

  • Это моя таблица базы данных (kontrol) на phpAdmin стороне

введите здесь описание изображения

ogr_id tur_id и durum_id — это поля моего объекта класса.

  • То, что я пробовал, это сценарий

    вар экспресс = требуется ('экспресс'); var utils = require('./custom_utils.js');

module.exports = function(database){ var router = express.Router();

router.post('/', function(req, res, next) {

    var nesne = "merhaba";
    database.query('INSERT INTO kontrol (ogr_id, tur_id, durum_id,tarih) VALUES ? ', 
            [Array.from(req.body.ogrenciler).map(function(g){ return [g, nesne, 0]; })], function(err, results, fields){
                var n = results.length;
        if(err){
            console.log(err);
            res.json({ status: utils.respondMSG.DB_ERROR });
        }else if(n<1){
                    res.json({status: utils.respondMSG.DB_ERROR});
        }else {

            res.json({status: utils.respondMSG.SUCCEED});

        }
    });
});
return router;

};

  • Вот мой запрос почтальона

введите здесь описание изображения

Я могу использовать услуги обратного вызова Retrofit из-за результата почтальона. То, что я пытаюсь сделать, это отправить правильный запрос и написать скрипт для его обработки на стороне сервера.

{ "ogrenciler" : [ { "ogr_id": 17, "tur_id": 1, "durum_id": 2, "tarih": "2017-17-02" }, {"ogr_id": 74, "tur_id": 1 , "durum_id": 1, "tarih": "2017-17-02" } ] }

Как я уже сказал, ogr_id tur_id durum_id - это поля моего объекта списка, также хотелось бы знать, есть ли более эффективный запрос и, конечно же, его краткая сторона. По крайней мере, я надеюсь услышать некоторые решения моей первой попытки

************************* РЕШЕНО - ОТРЕДАКТИРОВАНО *************** **********

- То, что я пытаюсь отправить из Postman, нравится

введите здесь описание изображения

– Метод модернизации

{
@POST("saveOgrYoklama")
Call<YoklamaStatus> sendYoklamaList2(@Body Yoklama yoklama);
}

- Классы моделей для обработки значений

{
 public class Yoklama implements Serializable {

        @SerializedName("tarih")
        private String tarih;

        @SerializedName("ogrenciler")
        private ArrayList<YoklamaOgrenciler> ogrenciler;

        public class YoklamaOgrenciler implements Serializable {

        @SerializedName("ogr_id")
        private int ogr_id;

        @SerializedName("tur_id")
        private int tur_id;

        @SerializedName("durum_id")
        private int durum_id;
      }
    }
}

– И сценарий

var express = require('express');
var utils = require('./custom_utils.js');

module.exports = function(database){
    var router = express.Router();

    router.post('/', function(req, res, next) {

        var jsondata = req.body.ogrenciler;
        var values = [];
        //var mysqlTimestamp = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
        var st = req.body.tarih;
        //console.log(st);
        var uzunluk = req.body.ogrenciler.length;
        for(var i=0; i< uzunluk; i++)
            values.push([ jsondata[i].ogr_id, jsondata[i].tur_id, jsondata[i].durum_id,st  ]);

        console.log(req.body.ogrenciler);
        console.log(values);
        console.log(jsondata);

        console.log("uzunluk is :"+uzunluk);
        console.log("Deneme asds");
        database.query('INSERT INTO kontrol (ogr_id, tur_id, durum_id, tarih) VALUES ? ', [values], function(err, results, fields){
                    var n = results.length;

                    console.log(results);
                    console.log("Affected Row Num : "+results.affectedRows);
            if(err){
                console.log(err);
                res.json({ status: utils.respondMSG.DB_ERROR });
            }else if(n==NaN){
                        console.log("result NaN");
                        res.json({status: utils.respondMSG.SUCCEED});
            } else if(n==null){
                        console.log("result null");
                        res.json({status: utils.respondMSG.SUCCEED});
            }else if(n<1){
                        console.log("result < 1 ");
                        res.json({status: utils.respondMSG.SUCCEED});
            }else {
                res.json({status: utils.respondMSG.SUCCEED});
            }
            /**/
        });
    });
    return router;
};

Убедитесь, что над методом службы не стоит @FormUrlEncoded. Babanız bu iyiliği yapmaz söyliim. Надеюсь, это поможет другим, потерявшим на этом много дней


person Sam    schedule 19.02.2017    source источник
comment
Это выглядит неправильно - INSERT INTO kontrol (ogr_id, tur_id, durum_id, tarih) VALUES ?   -  person Gurwinder Singh    schedule 19.02.2017
comment
Да, мне нужно найти правильный, просто набрал то, что мог, подумал, что было бы лучше вместо предложений, самая полезная ссылка, которую я нашел, это stackoverflow.com/questions/21779528/, но не решить, что мне нужно   -  person Sam    schedule 19.02.2017