node.js - 使用 Sequelize.js 添加带有自动生成字段的数据

标签 node.js api sequelize.js

我想在我的支出表中创建一行,该行在创建时具有自动生成的 code

在我的 postman 身上,这是我对 body 的输入:

{
    "partner_id": 1,
    "user_id": 913,
    "earnings": "3348.93",
    "process_by": 21,
    "receipt": "asdasds",
    "message": "",
    "data": "{\"mop\":\"-deposit\"}"
}

这是返回的 Json 数据:
{
 "created_at": "2020-01-08T02:51:29.711Z",
 "updated_at": "2020-01-08T02:51:29.711Z",
 "id": 7,
 "partner_id": 1,
 "user_id": 913,
 "earnings": "3348.93",
 "process_by": 21,
 "receipt": "asdasds",
 "message": "",
 "data": "{\"mop\":\"-deposit\"}",
 "updatedAt": "2020-01-08T02:51:32.250Z"
}

它输出主体,但 code 除外。

这是我的 PartnerPayoutsRepository.js 上的 createCode 函数
createCode(length, code) {
var code = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
  code += characters.charAt(Math.floor(Math.random() * charactersLength));
}

 return code;
}

这是我的 后 api :
 router.post('/', isAdmin, validator, async (req, res) => {
 try {
   const data = req.params.code;
   const code = await PartnersPayoutRepository.createCode(data);
   const partner_payout = await PartnersPayoutRepository.create(req.body,code);
   res.json(partner_payout);
 } catch (error) {
   console.log(error);
   res.sendStatus(500);
  }
});

任何想法为什么以及如何处理这个?谢谢。

最佳答案

这是使用 sequelize https://sequelize.org/master/class/lib/model.js~Model.html#static-method-create 插入一行的文档,
它需要两个参数,第一个是对象类型的数据,第二个是插入选项,它也是对象类型。您的创建在第二个对象中发送代码。

post_api.js

 router.post('/', isAdmin, validator, async (req, res) => {
 try {
   const data = req.params.code;
   const code = await PartnersPayoutRepository.createCode(data);

   **// add code to the req.body object**
   req.body.code = code

   const partner_payout = await PartnersPayoutRepository.create(req.body);
   res.json(partner_payout);
 } catch (error) {
   console.log(error);
   res.sendStatus(500);
  }
});

关于node.js - 使用 Sequelize.js 添加带有自动生成字段的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59639532/

相关文章:

Node.js数组切片操作是 "thread safe"?

javascript - .app 文件夹是什么?如何将其转换为 .dmg 存档?

node.js - 如何在 Windows 7 上安装 Zombie JS? (node.js headless 浏览器)

mysql - Node js for循环中调用mysql存储过程

php - 如何在没有用户代理 header 的情况下发送请求

api - 如何通过 ISBN 从国会图书馆检索 XML/JSON 中的书籍信息

python - 错误 400 : invalid_request The out-of-band (OOB) flow has been blocked in order to keep users secure

node.js - heroku Postgres - Sequelize 主机的 : no pg_hba. conf 条目

node.js - 在 Sequelize 中创建关联

mysql - 使用 Sequelize JS 插入唯一记录的更好方法