如何写 Dora 插件
March 3, 2016 · View on GitHub
入门
下面的例子演示如何通过增加中间件来记录请求。
module.exports = {
name: 'log',
middleware: function() {
return function *(next) {
console.log(this.method + ':' + this.url);
yield next;
}
},
};
更多例子:
异步插件
异步插件编写有两种方式:Promise 和 generator。
Promise
module.exports = {
'server.after': function() {
return new Promise(function(resolve) {
startLivereloadServer(resolve);
});
}
}
generator
module.exports = {
'server.after': *function() {
yield new Promise(function(resolve, reject) {
startLiverealodServer(function() {
resolve();
});
});
}
};
插件方法
middleware.before
middleware
middleware.after
server.before
server.after
process.exit
插件上下文
这里的接口都可以通过 this 访问到。
port
Dora 服务器端口,默认 8000 。
cwd
当前路径,通常是项目根目录。
set(key, value)
函数,用于设置数据。
get(key)
函数,用于获取数据。
app
Koa app 实例。
server
HTTP Server 实例。只在 server.before 和 server.after 方法中有效。
log
类型为 Object,包含 4 个方法:debug, info, warn, error 。
query
类型为 Object,插件的查询参数。
比如执行命令 dora --plugins proxy?port=9000&verbose,那么 proxy 插件的查询参数是 {port:9000,verbose:true}。