如何在 feathersJS 创建的服务上实现自己的代码
how to implement own code on services created by feathersJS
我想在一个项目中使用 feathersJS。我已经浏览了文档,也尝试浏览了文档中提供的聊天应用程序,但我仍然没有很好地理解它。
据我了解,他们为每个功能创建了服务和数据库,例如为用户和消息创建了两个使用 Nedb 数据库的服务。
我的问题是,我是否应该为每个要实现的功能创建一个包含数据库的服务?其次,对于feathers创建的每个服务,都在app.js,所以我要写的逻辑代码不是feathersJS创建的逻辑代码需要写在app.js上,还是需要自己创建另一个app.js?
如果你能建议我一些使用 feathersJS 完成的项目,我将不胜感激。
您是否使用 CLI 创建应用程序和服务?也许会更容易。但实际上没有必要为每个服务都创建一个数据库,除非确实有必要使用超过 1 个。
关于逻辑代码,这取决于。可以作为express middleware or in the service hooks (for every service or for the application)来处理。第二种情况更多是关于预处理和 post 处理客户端请求。当然,made本身的操作可以是一个class、一个函数甚至是一个API调用。例如,可以在执行'get'操作之前检查客户端在请求中发送的参数only before将ckeck加入GET before hook。还有一个钩子来检查身份验证。
//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: []
}
};
我想在一个项目中使用 feathersJS。我已经浏览了文档,也尝试浏览了文档中提供的聊天应用程序,但我仍然没有很好地理解它。
据我了解,他们为每个功能创建了服务和数据库,例如为用户和消息创建了两个使用 Nedb 数据库的服务。
我的问题是,我是否应该为每个要实现的功能创建一个包含数据库的服务?其次,对于feathers创建的每个服务,都在app.js,所以我要写的逻辑代码不是feathersJS创建的逻辑代码需要写在app.js上,还是需要自己创建另一个app.js?
如果你能建议我一些使用 feathersJS 完成的项目,我将不胜感激。
您是否使用 CLI 创建应用程序和服务?也许会更容易。但实际上没有必要为每个服务都创建一个数据库,除非确实有必要使用超过 1 个。
关于逻辑代码,这取决于。可以作为express middleware or in the service hooks (for every service or for the application)来处理。第二种情况更多是关于预处理和 post 处理客户端请求。当然,made本身的操作可以是一个class、一个函数甚至是一个API调用。例如,可以在执行'get'操作之前检查客户端在请求中发送的参数only before将ckeck加入GET before hook。还有一个钩子来检查身份验证。
//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: []
}
};