有没有办法忽略数据库查询中的URL查询参数?
背景:
我有一个GET / Find-REST-Endpoint /parts
,想要指定类似/parts?format=type1
之类的内容以特定格式接收数据。
我将在after hook
中的parts service
中进行格式化。但是抛出错误,说列"parts.format" is not specified
。
那么如何忽略数据库的某些url查询参数,而在after hook logic
中使用它们?
答案 0 :(得分:1)
在Feathers hook中解构和传播JavaScript对象在这里可能非常有用:
async context => {
const { query: { format, ...query } } = context.params;
context.params = {
...context.params,
query,
format
}
return context;
}
这将从format
中删除query
并设置params.format
。另一个优点是不会修改原始对象。
答案 1 :(得分:0)
使用javascript的delete
函数怎么样?
此钩子提取查询参数并将其应用于context.params
function extractQueryParams(...fields){
return context => {
fields.forEach(field => {
context.params[field] = context.params.query[field]
delete context.params.query[field]
})
return context
}
}
// can be used like this
before: {
all: [extractQueryParams('delivery')],
}