abbshr / Nero-Plugins

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nero Plugins Lib

  1. How to write a plugin for Nero?
class TestPlugin
  constructor: ->
    # 这里可以暂存插件的运行时动态数据
  
  # 表示该插件是否应用到集群(yes表示应用范围是插件, no表示为基础插件)
  base: no
  
  pluginName: "test-plugin"
  
  handle: (req, res, next) ->
    # handle中可以使用Nero的全局配置对象@settings, 
    # 包含当前调用的服务名字, 请求参数, 上游应用服务器地址, 该插件的配置
    
    # req.specHeader - 在`request-head-transform`插件中生成的的自定义请求头
    # req.etcs - upstream的path (即protocol://host:port之后的部分)
    # req.cfg - 当前执行的插件的配置信息
    # req.stageDataStream - 客户端请求携带的数据流
    # req.settings - 全局配置信息
    # req.serviceName - 服务名称

    # 当前插件的配置:
    # {cfg} = req
    
    # plugin logic body

module.exports = (args) -> new TestPlugin args
  1. How to load my plugin?

使用自定义扩展前需要在./etc/plugins.yaml中注册新的名字和查找路径.

./etc/plugins.yaml中的插件路径相对于./plugins.

./etc/Nero.yaml配置文件的request_phaseresponse_phase字段里可以选择性启用/禁用./etc/plugins.yaml中的插件.

About


Languages

Language:CoffeeScript 100.0%