Узел Sequelize json порядок полей - PullRequest
0 голосов
/ 01 марта 2020

Этот узел используется для извлечения и создания записей, для создания, пока мы получаем последнее json поле в первой позиции.

router.post('/audit', async (req,res)=> {
const _audit=req.body;
 try {
    const __audit= await audit.create(_audit)
    res.status(201).json(__audit)
  } catch (err) {
    res.status(400).send(err)
  }
}); 

JSON При создании почему updatedDate на первом месте

{
    "updatedDate": "2020-03-01T11:35:27.984Z",
    "id": 11,
    "updatedBy": "Rod",
    "actions": "added",
    "oldData": "updated",
    "newData": "change",
    "entityType": "admin1",
    "entityId": "53"
}
router.get('/audit',(req,res)=>{

  audit.findAll()
    .then(a=>{
      res.json(a)
  }).catch(err=>{
    res.send('error'+err)
    res.status(400)
  })
});

JSON Здесь возвращается json идеально при получении всех данных с помощью findall () , Хотя он также отлично работает с другим запросом http.

[
    {
        "id": 4,
        "updatedBy": "Rod",
        "actions": "added",
        "oldData": "updated",
        "newData": "change",
        "entityType": "admin1",
        "entityId": "53",
        "updatedDate": "2020-03-01T11:07:46.000Z"
    }
]

Model Это модель для извлечения с последующим с mysql

const Sequelize=require('sequelize')
const db= require('../database/db')


module.exports =  db.sequelize.define(
    'audit',
    {
        id: {
        type: Sequelize.INTEGER(11),
        autoIncrement:true,
        primaryKey: true
        },
        updatedBy: {
        type:Sequelize.STRING(45),
        field: 'updated_by'
        },
        actions: {
        type:Sequelize.STRING(45),
        field:'actions'
        },
        oldData: {
        type:Sequelize.STRING(45),
        field:'old_data'
        },
        newData: {
        type:Sequelize.STRING(45),
        field:'new_data'
        },
        entityType: {
        type:Sequelize.STRING(45),
        field:'entity_type'
        },
        entityId: {
        type:Sequelize.STRING(45),
        field:'entity_id'
        },
        updatedDate: {
        type:Sequelize.DATE,
        field:'updated_date',
        defaultValue: Sequelize.NOW
        }
    },
   {
    freezeTableName: true
   }
)

1 Ответ

0 голосов
/ 01 марта 2020

Порядок полей в сериализованном / десериализованном * JS -объекте зависит от браузера / движка узла. Вы не должны полагаться на определенный порядок полей, потому что обычно вы получаете к ним доступ по ключу.

...