Skip to content

XFly插件制作教程

xuld edited this page Apr 23, 2014 · 1 revision

XFly 本身是一个 NodeJs 开发开源的可高度定制化的 web 服务器,用户可以用 JavaScript 为服务器开发各种插件以适应自己的项目需求。

开发第一个插件

假如我们需要开发这样一个插件:当用户请求页面时,服务器会自动记录此用户的浏览器版本。

1. 准备工作

新建插件文件 sum.js,可以放在任意位置。默认插件放在 xfly/server/modules/ 然后修改项目配置文件(data/server.json)来安装此插件:

"modules": {
    "sum": "server/modules/sum.js"
}

2. 初始化工作

为了能保存用户浏览器记录,必须先新建好一个数据文件。

// 这个函数将由服务器在初始化时自动调用。
// 参数 application 包含了服务器的所有信息。
exports.init = function(application){

    console.log("初始化了");

    var fs = require('utilskit/io');
    var path = require('path');
    fs.createFile(path.resolve(application.physicalPath, "sum.txt") );
    
};

3. 对请求进行处理

// 这个函数将由服务器在接收到任意请求时自动调用。
// 参数 context 包含了服务器的所有信息。
exports.processRequest = function(context){

    console.log("收到请求");

    var ua = context.request.handlers["User-Agent"];
    var application = context.applicationInstance;
   
    var fs = require('utilskit/fs');
    fs.appendFile(ua + "\r\n");
    
};

插件的分类

XFly 插件分 3 种:

  1. module:对整个服务器而言的插件,任何请求都会执行这个插件
  2. apps: 对特定地址进行处理的插件。
  3. handlers:对特定扩展名的文件进行处理的插件。