您的位置:首页 > 新闻 > 资讯 > 如何制作网址内容_目前b2b网站有哪些_网上营销策略有哪些_短视频推广引流

如何制作网址内容_目前b2b网站有哪些_网上营销策略有哪些_短视频推广引流

2024/12/27 18:58:33 来源:https://blog.csdn.net/jl15988/article/details/144734577  浏览:    关键词:如何制作网址内容_目前b2b网站有哪些_网上营销策略有哪些_短视频推广引流
如何制作网址内容_目前b2b网站有哪些_网上营销策略有哪些_短视频推广引流

写在前面

虽然已经有很多优秀的服务框架了,比如 Express.js、Koa 等,但是自己还是有些多这方面的构想,比如 express,接口都是通过 app. 来指定,总跟我的预想不太合,其实我更想将不同接口放在不同的一个类或者方法中(不知道 express 有没有,因为网上都是 app. 这么写的,也没深入了解),而且我比较喜欢面向对象的方式,主要还是自己想摸索一下开发一个属于自己的服务框架😁

代码

已经写了一部分,但是封装的还有很多不足,先上目前的代码:

index.js

const {nodeAction, Action, actionInterceptor} = require("@jl15988/node-action");const userInfo = {"id": 1,"username": "admin","nickname": "管理员","email": "aoteman@126.com","mobile": "15612345678","sex": 1,"avatar": null,"loginIp": "192.168.0.8","loginDate": 1731468594935,"createTime": 1609837427000,"roles": [{"id": 1,"name": "超级管理员"},{"id": 2,"name": "普通角色"}],"dept": null,"posts": [{"id": 1,"name": "董事长"}],"socialUsers": []
}// 创建用户控制器
const UserAction = new Action('UserAction', (action) => {// 设置 user action 的路由前缀action.mapping('/user')// 获取用户信息接口action.get('/get', (requestInfo) => {// 请求参数console.log(requestInfo.params)// 返回用户信息return userInfo})// 修改用户信息接口action.post('/update', (requestInfo) => {// 请求体console.log(requestInfo.body)// 返回修改结果return {code: 200,message: '修改成功'}})
})const interceptors = [{// 拦截器名name: 'onLoad',// 执行排序,如果重复则按添加的顺序,没有顺序的优先级最低sort: 0,// 解析路由之前的拦截器load: (requestInfo, response) => {return true},// 执行路由处理方法之前的拦截器before: (requestInfo, response, routeInfo) => {return true},// 执行路由处理方法之后的拦截器after: (requestInfo, response, routeInfo, handleResult) => {return true}
}]// 统一异常处理器
nodeAction.actionErrorHandler = (request, response, error) => {console.error(error)
}// 统一返回数据处理器
nodeAction.actionResultHandler = (request, response, res) => {console.log(res)return res
}nodeAction// 控制器.actions([UserAction])// 拦截器.interceptors(interceptors)// 端口号.port(3000)// 启动.start()

执行 node src/index.js 启动

浏览器访问:http://{本地地址}:3000/user/get

说明

1. action 控制器

如上述代码示例,有一个 Action 类,用于构建控制器。

  • 控制器接收 name 和一个方法,分别是该控制器的名称和处理函数,处理函数中用于指定接口和处理方法;
  • 处理方法会有一个当前控制器本身的实例参数,可用于指定 mapping、get、post、put、delete 等;
  • mapping 用于指定该控制器下所有接口的统一前缀路由;
  • get等接口接收路由和处理函数,处理函数会有 requestInfo 请求信息和 response 响应两个参数,用于拿取请求信息和处理响应(在新版本中 requestInfo 和 response 被归到了一个参数中[actionParam],同时包含请求路径、请求URL、请求方法、请求参数、请求体、转发、获取静态资源等参数和方法)。

2. interceptor 拦截器

在新版本中,nodeAction.interceptors 接收的是 ActionInterceptor 数组,而不是 json 数组了,也是用于规范拦截器的定义。拦截器接收 load、before、after 处理函数用于拦截解析路由之前、执行路由处理方法之前、执行路由处理方法之后。通过返回 true 或 false 来指定不拦截或者拦截。

3. handler 处理器

目前有两种处理器

  • actionErrorHandler 请求异常处理器。由于统一处理全局异常的处理器,有 request(请求)、response(响应)、error(异常)三个参数;
  • actionResultHandler 响应结果处理器。用于统一处理全局响应结果的处理器,有request(请求)、response(响应)、res(结果)三个参数。

项目地址

https://gitee.com/jl15988/node-action

结尾

以上就是目前已经开发出来的东西,很多东西都有待优化,有过你有好的建议或想法,欢迎提议,感谢!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com