Skip to content

FurryWolfX/lightning-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

极简风格的 Web 服务端框架 Lightning

超轻量,易于上手。坚持约定大于配置的原则,使开发更简单。

需要配合 lightning-templatelightning-generator 一起使用效果最佳。

关于 lightning-templatelightning-generator 可以在 Github 获取。

目前作为公司内部使用。

5.x 更新``

重写了全部代码,与 4.x 不兼容。

import { Server, RouteCallbackParams, RouteCallbackCtx } from "@wolfx/lightning";

const server = new Server({ port: 5000, staticDir: "" });
/*
自定义logger
server.setLogger({
  log: console.log,
  warn: console.warn,
  error: console.error
});
自定义response header
server.setRequestInterceptor(async (req, res) => {
  res.setHeader("test", "test");
});
*/
server.addRoute(Server.GET, "/test", async (data: RouteCallbackParams, ctx: RouteCallbackCtx) => {
  return data.query;
});
server.addRoute(Server.POST, "/", async (data: RouteCallbackParams, ctx: RouteCallbackCtx) => {
  return data.fields;
});
server.start();

如果你喜欢用装饰器,也可以这样使用:

import { Server, RouteCallbackParams, RouteCallbackCtx, RouterClass, RouterMapper } from "@wolfx/lightning";

const server = new Server({ port: 5000 });
server.start();

@RouterClass()
class DemoRouter {
  @RouterMapper(server, Server.GET, "/")
  async getData(data: RouteCallbackParams, ctx: RouteCallbackCtx) {
    console.log(data.query);
    return data.query;
  }
}

使用动态路由

@RouterClass()
class DemoRouter {
  @RouterMapper(server, Server.GET, "/:id/:type")
  async getData(data: RouteCallbackParams, ctx: RouteCallbackCtx) {
    return {
      query: data.query,
      params: data.params
    };
  }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published