如何在feathersJS创建的服务上实现自己的代码



我想在项目中使用feathersJS。我已经浏览了文档,也尝试浏览文档中的聊天应用程序,但仍然没有很好地理解。

正如我所理解的,对于他们创建服务和数据库的每个功能,例如对于用户和消息,有两个服务已经创建,它们使用Nedb数据库。

我的问题是,我是否应该为要实现的每个功能创建包含数据库的服务?第二,对于feathers创建的每个服务,都有app.js,所以我想要写的逻辑代码需要写在app.js上,而不是feathersJS创建的逻辑代码,或者需要自己创建另一个app.js?

如果你能给我推荐一些使用feathersJS完成的项目,我也会很感激。

您是否使用CLI来创建应用程序和服务?也许会更容易。但实际上并不是必须为每个服务创建一个数据库,除非真的需要使用1以上。

关于逻辑代码,这取决于情况。它可以作为一个快速中间件处理,也可以在服务挂钩中处理(用于每个服务或应用程序(。第二种情况更多地是关于预处理和后处理客户端请求。当然,操作本身可以是一个类、一个函数,甚至是一个API调用。例如,您可以只在执行"get"操作之前检查客户端在请求中发送的参数,将ckeck添加到挂钩之前的get中。还有一个钩子来检查身份验证。

//in other some place
module.exports = (hook) => {
return hook.params.query.device_type === 'smartphone' 
? console.log('is a smartphone request')
: console.log('is not a smartphone request');
}
//src/services/devices/devices.hooks.js
const { authenticate } = require('@feathersjs/authentication').hooks;
const myVerification = require('path/to/myverification');
const myVerification2 = require('path/to/myverification2');
module.exports = {
before: {
all: [ authenticate('jwt') ],
find: [],
get: [myVerification, myVerification2],
create: [],
update: [],
patch: [],
remove: []
},
after: {
all: [],
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
},
error: {
all: [],
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
}
};

最新更新