国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

造輪子系列 --- 注解、插件式node.js web / restful api 框架

JowayYoung / 1263人閱讀

摘要:是基于的插件式開發框架和平常的相比,它無需另外綁定路由集合可拓展開發簡單,依照的著名依賴注入框架來制作,讓開發者專注于邏輯。采用多服務多進程架構來保證服務的穩定和快速響應能力。的中間件和的中間件保持兼容。默認使用的是后續會提供。

polix是基于koa v2.5.0IOC、插件式開發框架,和平常的Node.js Web Framework相比,它無需另外綁定路由集合、可拓展、開發簡單,依照java的著名依賴注入框架spring來制作,讓開發者專注于邏輯。polix采用多服務多進程架構來保證服務的穩定和快速響應能力。polix的中間件和koa v2.x的中間件保持兼容。默認使用的ORMsequelize(后續會提供polix-orm)。開發者可以選擇ES6/7/8 或者 TypeScript來進行開發。

$ npm i polix --save
Getting Started
使用polix-cli初始化應用
$ npm i polix-cli -g
$ pol init example && cd example
$ make build && make dev
Service
service文件夾下添加user.js
const { Service } = require("polix");

class UserService extends Service {
  constructor(){
    super();
    this._name = {};
  }

  async addUser(userId,name){
    this._name[userId] = name;
    return this;
  }

  async getUser(userId){
    return this._name[userId];
  }
}

module.exports = UserService;
Controller
controller文件夾下添加user.js
const { Controller, GET, POST, DEL, PUT  } = require("polix");

class UserController extends Controller {
  
  // POST /user/addUser
  @POST
  async addUser(param, ctx){
    await this.service.user.addUser(param.userId,param.name);
    ctx.body = {
      result: "ok"
    };
  }

  // GET /user/getUser
  @GET
  async getUser(param, ctx){
    let user = await this.service.user.getUser(param.userId);
    ctx.body = {
      user
    };
  }

  // GET /user/info
  @GET("info")
  async getInfo(param, ctx){
    ctx.body = {
      v: "v1.0"
    }
  }

  // PUT /user/updateUser
  @PUT
  async updateUser(param, ctx){
    ctx.body = {
      status: true
    }
  }

  // DEL /user/delUser
  @DEL
  async delUser(param, ctx){
    ctx.body = {
      status: true
    };
  }

  // GET /user/status/:userId
  @GET("status/:userId")
  async getStatus(param, ctx){
    ctx.body = {
      status: true,
      userId: param.userId
    };
  }

}

module.exports = UserController;
Middware

polix的中間件與koa 2.x 的中間件保持兼容
框架默認加載koa-body中間件,如需另外添加中間件則新建middware文件夾(與controller文件夾平級)
添加跨域中間件 ,新建cors.js:

# cors.js

const cors = require("koa2-cors");
module.exports = function(){
  return cors({
    origin: function(ctx) {
      return "*";
    },
    exposeHeaders: ["WWW-Authenticate", "Server-Authorization"],
    maxAge: 5,
    credentials: true,
    allowMethods: ["GET", "POST", "DELETE"],
    allowHeaders: ["Content-Type", "Authorization", "Accept"]
  });
}

該文件夾下必須存在index.js文件作為總輸出中間件文件,加載時根據導出對象的順序進行綁定中間件

# index.js

const cors = require("./cors");

module.exports = {
    cors // 必須是函數 ,綁定方式為:app.use(cors())
}
Plugin
$ npm i --save polix-request
在項目根目錄下的config文件夾下的plugin.default.js中添加以下代碼
// `curl`最終會掛載到`this.app`下
exports.curl = {
  // 表示是否啟用該插件
  enable: true,
  // 插件`npm`包名
  package: "polix-request"
};
controller里用polix-request
  @GET
  async getWebInfo(param, ctx){
    let result = await this.app.curl.get("https://www.baidu.com");
    ctx.body = {
      data: result
    }
  }
polix已經內置polix-request插件了,這里只是個演示
Start
$ make dev

地址:polix.js

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40029.html

相關文章

  • SpringBoot-vue 基于Java的微服務全棧快速開發實踐

    摘要:本項目將使用配合最簡單的邏輯來展示一個基于的微服務全棧快速開發實踐的。提供一系列大型項目常用的非功能性特征,比如內嵌服務器,安全,指標,健康檢測,外部化配置。 SprintBoot-Vue SpringBoot + 前端MVVM 基于Java的微服務全棧快速開發實踐 showImg(https://segmentfault.com/img/remote/1460000010167913...

    FleyX 評論0 收藏0
  • SpringBoot-vue 基于Java的微服務全棧快速開發實踐

    摘要:本項目將使用配合最簡單的邏輯來展示一個基于的微服務全棧快速開發實踐的。提供一系列大型項目常用的非功能性特征,比如內嵌服務器,安全,指標,健康檢測,外部化配置。 SprintBoot-Vue SpringBoot + 前端MVVM 基于Java的微服務全棧快速開發實踐 showImg(https://segmentfault.com/img/remote/1460000010167913...

    neu 評論0 收藏0
  • javascript功能插件大集合,寫前端的親們記得收藏

    摘要:一個專注于瀏覽器端和兼容的包管理器。一個整合和的最佳思想,使開發者能快速方便地組織和編寫前端代碼的下一代包管理器。完全插件化的工具,能在中識別和記錄模式。健壯的優雅且功能豐富的模板引擎。完整的經過充分測試和記錄數據結構的庫。 【導讀】:GitHub 上有一個 Awesome – XXX 系列的資源整理。awesome-javascript 是 sorrycc 發起維護的 JS 資源列表...

    cfanr 評論0 收藏0
  • Spring Web

    摘要:認證鑒權與權限控制在微服務架構中的設計與實現一引言本文系認證鑒權與權限控制在微服務架構中的設計與實現系列的第一篇,本系列預計四篇文章講解微服務下的認證鑒權與權限控制的實現。 java 開源項目收集 平時收藏的 java 項目和工具 某小公司RESTful、共用接口、前后端分離、接口約定的實踐 隨著互聯網高速發展,公司對項目開發周期不斷縮短,我們面對各種需求,使用原有對接方式,各端已經很...

    Kosmos 評論0 收藏0
  • 前端每周清單半年盤點之 JavaScript 篇

    摘要:前端每周清單專注前端領域內容,以對外文資料的搜集為主,幫助開發者了解一周前端熱點分為新聞熱點開發教程工程實踐深度閱讀開源項目巔峰人生等欄目。背后的故事本文是對于年之間世界發生的大事件的詳細介紹,闡述了從提出到角力到流產的前世今生。 前端每周清單專注前端領域內容,以對外文資料的搜集為主,幫助開發者了解一周前端熱點;分為新聞熱點、開發教程、工程實踐、深度閱讀、開源項目、巔峰人生等欄目。歡迎...

    Vixb 評論0 收藏0

發表評論

0條評論

JowayYoung

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<