我正在尝试使用beforeRemote(“ create”,fn)。在继续保存收到的数据之前,我需要更改一些字段。
我尝试操作ctx.args中的数据,但是没有运气。保存的数据不包括我所做的更改。
我正在使用回送3.23.x和mongodb数据库。有人可以告诉我如何处理数据吗?这不是遥控器之前的用途吗?
model.beforeRemote("create", async function(ctx, instance, next) {
console.log(ctx.args)
ctx.args = {
...ctx.args,
tags: [ "one", "two" ],
}
console.log(ctx.args)
return;
});
答案 0 :(得分:2)
请注意,ctx.args
包含所有参数。在代码段中,您正在为名为tags
的命名参数设置值。内置的“创建”方法不接受任何tags
参数,这就是LoopBack(强远程)忽略这些多余数据的原因。
要修改模型数据(属性值),您需要更改ctx.data
对象。
model.beforeRemote("create", async function(ctx, instance, next) {
console.log(ctx.args)
ctx.arg.data = {
...ctx.args.data,
tags: [ "one", "two" ],
}
console.log(ctx.args)
return;
});
答案 1 :(得分:0)
经过一些测试:使用mysql连接器,可以在ctx.req.body
中找到要创建的数据。
您可以在将数据保存到数据库之前对其进行修改。
但是它不适用于mongodb连接器。
使用此连接器,可以在ctx.args.data
中使用创建的值,您可以对其进行修改。
希望有帮助,