摘要:是基于的插件式開發(fā)框架和平常的相比,它無需另外綁定路由集合可拓展開發(fā)簡單,依照的著名依賴注入框架來制作,讓開發(fā)者專注于邏輯。采用多服務(wù)多進(jìn)程架構(gòu)來保證服務(wù)的穩(wěn)定和快速響應(yīng)能力。的中間件和的中間件保持兼容。默認(rèn)使用的是后續(xù)會提供。
polix是基于koa v2.5.0的IOC、插件式開發(fā)框架,和平常的Node.js Web Framework相比,它無需另外綁定路由集合、可拓展、開發(fā)簡單,依照java的著名依賴注入框架spring來制作,讓開發(fā)者專注于邏輯。polix采用多服務(wù)多進(jìn)程架構(gòu)來保證服務(wù)的穩(wěn)定和快速響應(yīng)能力。polix的中間件和koa v2.x的中間件保持兼容。默認(rèn)使用的ORM是sequelize(后續(xù)會提供polix-orm)。開發(fā)者可以選擇ES6/7/8 或者 TypeScript來進(jìn)行開發(fā)。
$ npm i polix --saveGetting Started
使用polix-cli初始化應(yīng)用
$ npm i polix-cli -g $ pol init example && cd example $ make build && make devService
在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 的中間件保持兼容
框架默認(rèn)加載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文件作為總輸出中間件文件,加載時(shí)根據(jù)導(dǎo)出對象的順序進(jìn)行綁定中間件
# index.js const cors = require("./cors"); module.exports = { cors // 必須是函數(shù) ,綁定方式為:app.use(cors()) }Plugin
$ npm i --save polix-request
在項(xiàng)目根目錄下的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已經(jīng)內(nèi)置polix-request插件了,這里只是個(gè)演示Start
$ make dev
地址:polix.js
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40029.html
摘要:本項(xiàng)目將使用配合最簡單的邏輯來展示一個(gè)基于的微服務(wù)全棧快速開發(fā)實(shí)踐的。提供一系列大型項(xiàng)目常用的非功能性特征,比如內(nèi)嵌服務(wù)器,安全,指標(biāo),健康檢測,外部化配置。 SprintBoot-Vue SpringBoot + 前端MVVM 基于Java的微服務(wù)全??焖匍_發(fā)實(shí)踐 showImg(https://segmentfault.com/img/remote/1460000010167913...
摘要:本項(xiàng)目將使用配合最簡單的邏輯來展示一個(gè)基于的微服務(wù)全??焖匍_發(fā)實(shí)踐的。提供一系列大型項(xiàng)目常用的非功能性特征,比如內(nèi)嵌服務(wù)器,安全,指標(biāo),健康檢測,外部化配置。 SprintBoot-Vue SpringBoot + 前端MVVM 基于Java的微服務(wù)全??焖匍_發(fā)實(shí)踐 showImg(https://segmentfault.com/img/remote/1460000010167913...
摘要:一個(gè)專注于瀏覽器端和兼容的包管理器。一個(gè)整合和的最佳思想,使開發(fā)者能快速方便地組織和編寫前端代碼的下一代包管理器。完全插件化的工具,能在中識別和記錄模式。健壯的優(yōu)雅且功能豐富的模板引擎。完整的經(jīng)過充分測試和記錄數(shù)據(jù)結(jié)構(gòu)的庫。 【導(dǎo)讀】:GitHub 上有一個(gè) Awesome – XXX 系列的資源整理。awesome-javascript 是 sorrycc 發(fā)起維護(hù)的 JS 資源列表...
摘要:認(rèn)證鑒權(quán)與權(quán)限控制在微服務(wù)架構(gòu)中的設(shè)計(jì)與實(shí)現(xiàn)一引言本文系認(rèn)證鑒權(quán)與權(quán)限控制在微服務(wù)架構(gòu)中的設(shè)計(jì)與實(shí)現(xiàn)系列的第一篇,本系列預(yù)計(jì)四篇文章講解微服務(wù)下的認(rèn)證鑒權(quán)與權(quán)限控制的實(shí)現(xiàn)。 java 開源項(xiàng)目收集 平時(shí)收藏的 java 項(xiàng)目和工具 某小公司RESTful、共用接口、前后端分離、接口約定的實(shí)踐 隨著互聯(lián)網(wǎng)高速發(fā)展,公司對項(xiàng)目開發(fā)周期不斷縮短,我們面對各種需求,使用原有對接方式,各端已經(jīng)很...
摘要:前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開發(fā)教程工程實(shí)踐深度閱讀開源項(xiàng)目巔峰人生等欄目。背后的故事本文是對于年之間世界發(fā)生的大事件的詳細(xì)介紹,闡述了從提出到角力到流產(chǎn)的前世今生。 前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn);分為新聞熱點(diǎn)、開發(fā)教程、工程實(shí)踐、深度閱讀、開源項(xiàng)目、巔峰人生等欄目。歡迎...
閱讀 2440·2021-10-09 09:59
閱讀 2196·2021-09-23 11:30
閱讀 2603·2019-08-30 15:56
閱讀 1158·2019-08-30 14:00
閱讀 2952·2019-08-29 12:37
閱讀 1271·2019-08-28 18:16
閱讀 1673·2019-08-27 10:56
閱讀 1037·2019-08-26 17:23