我想在我的支出表中创建一行,该行在创建时具有自动生成的 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/