@wolfx/lightning
v5.2.2
Published
fast web framework
Downloads
10
Readme
极简风格的 Web 服务端框架 Lightning
超轻量,易于上手。坚持约定大于配置的原则,使开发更简单。
需要配合 lightning-template
和 lightning-generator
一起使用效果最佳。
关于 lightning-template
和 lightning-generator
可以在 Github 获取。
目前作为公司内部使用。
5.x 更新``
重写了全部代码,与 4.x 不兼容。
const server = new Server({ port: 5000, staticDir: path.resolve(process.cwd(), "public") });
/*
自定义logger
server.setLogger({
log: console.log,
warn: console.warn,
error: console.error
});
*/
server.addRoute(Server.GET, "/test", {}, async (req, res, next) => {
return req.query;
});
server.addRoute(Server.POST, "/", {}, async (req, res, next) => {
return req.body;
});
server.start();
如果你喜欢用装饰器,也可以这样使用:
const server = new Server({ port: 5000, staticDir: path.resolve(process.cwd(), "public") });
server.start();
@RouterClass()
class DemoRouter {
@GetMapper(server, "/:id/:type")
async getData(req: LRequest, res: LResponse) {
return "hello";
}
}
使用动态路由
@RouterClass()
class DemoRouter {
@GetMapper(server, "/:id/:type")
async getData(req: LRequest, res: LResponse) {
return "hello";
}
}
文件上传
const storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, "public");
},
filename: function(req, file, cb) {
cb(null, file.fieldname + "-" + Date.now());
}
});
const upload = multer({ storage });
@RouterClass()
class DemoRouter {
@PostMapper(server, "/upload", {
uploader: upload.single("avatar")
})
async getData(req: LRequest, res: LResponse) {
return "ok";
}
}