微信小程序群发功能代码实现详细分析
711
2022-10-23
SpiritJS 构建web应用程序的现代模块化库
spirit
Modern and functional approach to building web applications.
Why?
const {adapter} = require("spirit").nodeconst route = require("spirit-router")const http = require('http')const hello = () => "Hello World!"const greet = (name) => `Hello, ${name}`const app = route.define([ route.get("/", hello), route.get("/:name", ["name"], greet),])http.createServer(adapter(app)).listen(3000)
If we think about a web request in its simplest form, it's basically a function, it takes an input (request) and returns an output (response). So why not write web applications this way?
No more req, res. Spirit simplifies everything by abstracting away the complexity of req and res that normally resulted in impure and complex functions.
Middleware in spirit can also transform the returned response and not just the request. This is in contrast to other web libraries that can only transform the request. This is a simple idea but having this feature allows for much more DRY and expressive code.
Given the above, it's much more easier to re-use, test, and reason about your code in spirit.
Oh yea, most Express middleware works in spirit too!
Getting Started
The Handbook
collection of Examplesspirit API Docsspirit + spirit-router GuideIntroduction Video
Components
spirit is a small library for composing functions and creating abstractions. Abstractions are defined in a "spirit adapter". Currently it comes with 1 builtin, the node adapter (spirit.node) for use with node.js' http module. Eventually there will be another one written for spirit to run in the browser. spirit-router is a library for routing and creating routes. spirit-common is a library that provides many common http related middleware. It's purpose is to make bootstrapping a multitude of middleware that everyone will need easier. spirit-express, is a library for converting most Express middleware to work in spirit.
Third Party Components
spirit-body is a simple body parser middleware for spirit. Alternative to using spirit-common which wraps the Express body-parser module.
Contributing
All contributions are appreciated and welcomed.
For backwards incompatible changes, or large changes, it would be best if you opened an issue before hand to outline your plans (to avoid conflict later on).
This codebase avoids using unnecessary semi-colons, camelCase and one-liners.
To run tests, use make test. This will also build changes to src/*, if you do not have make installed, you can look at the Makefile to see the steps to accomplish the task.
Credits
Spirit is heavily influenced by the design of Ring.
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。