Feathersjs - 添加自定义字段以挂钩上下文对象
Featherjs - Add custom field to hook context object
当在客户端和服务器端使用 feathersjs 时,在应用程序挂钩(在客户端)中,我们收到一个包含多个字段的对象,如服务、方法、路径等。
我想使用 socket io 向该对象添加一个自定义字段。那可能吗?更准确地说,我想向客户端发送前端应用程序的当前版本,以便能够在前端过时(使用 pwa)时强制或建议刷新。
谢谢!
出于安全原因,只有 params.query and data(用于创建、更新和修补)在客户端和服务器之间传递。可以使用像这样的简单挂钩将查询参数从查询中提取到上下文中(您可以在其中将版本作为 __v
查询参数传递):
const setVersion = context => {
const { __v, ...query } = context.params.query || {};
context.version = __v;
// Update `query` with the data without the __v parameter
context.params.query = query;
return context;
}
此外,您还可以添加其他参数,例如 extraHeaders 版本号,然后可以 params.headers
.
反过来(从服务器发送版本信息)可以通过在 application hook:
中修改 context.result
来完成
const { version } = require('package.json');
app.hooks({
after: {
all (context) {
context.result = {
...context.result,
__v: version
}
}
}
});
由于 websockets 没有任何响应头,因此需要将其添加到返回的数据中。
当在客户端和服务器端使用 feathersjs 时,在应用程序挂钩(在客户端)中,我们收到一个包含多个字段的对象,如服务、方法、路径等。
我想使用 socket io 向该对象添加一个自定义字段。那可能吗?更准确地说,我想向客户端发送前端应用程序的当前版本,以便能够在前端过时(使用 pwa)时强制或建议刷新。
谢谢!
出于安全原因,只有 params.query and data(用于创建、更新和修补)在客户端和服务器之间传递。可以使用像这样的简单挂钩将查询参数从查询中提取到上下文中(您可以在其中将版本作为 __v
查询参数传递):
const setVersion = context => {
const { __v, ...query } = context.params.query || {};
context.version = __v;
// Update `query` with the data without the __v parameter
context.params.query = query;
return context;
}
此外,您还可以添加其他参数,例如 extraHeaders 版本号,然后可以 params.headers
.
反过来(从服务器发送版本信息)可以通过在 application hook:
中修改context.result
来完成
const { version } = require('package.json');
app.hooks({
after: {
all (context) {
context.result = {
...context.result,
__v: version
}
}
}
});
由于 websockets 没有任何响应头,因此需要将其添加到返回的数据中。