koa is a web development framework based on the Node.js platform, relying on "node v7.6.0" or ES2015 and higher versions and async method support; Koa does not bundle any middleware, but provides a A set of elegant methods to help users write server-side applications quickly and happily.
The operating environment of this tutorial: windows7 system, nodejs version 12.19.0, DELL G3 computer.
Koa -- the next generation web development framework based on the Node.js platform
Koa is a new web framework, created by the original team behind Express, dedicated to Designed to be a smaller, more expressive, and more robust cornerstone in web application and API development. By leveraging async functions, Koa helps you discard callback functions and greatly enhance error handling. Koa does not bundle any middleware, but provides a set of elegant methods to help you write server-side applications quickly and happily.
Koa was born to solve some design flaws of Express. Its middleware can be written through async function. await next() can interrupt the execution of the middleware and wait until all subsequent middleware is executed before executing it. The onion model can be implemented through await next().
Another feature is the simplified processing of request and response. Both of them are mounted on ctx for use. The returned content can also be used through direct assignment, such as: ctx.response.body = fs .createStream('really_large.xml').
Moreover, Koa has cut off the routing function, which is implemented through middleware. This is a minimalist idea of a microkernel.
Core functions (Koa’s documentation):
Installation
Koa depends on node v7.6.0 or ES2015 and higher and async method support.
You can use your favorite The version manager quickly installs supported node versions:
$ nvm install 7 $ npm i koa $ node my-koa-app.js
Use Babel to implement the Async method
To use the async method in node <7.6 version of Koa, we It is recommended to use babel's require hook.
require('babel-register'); // 应用的其余 require 需要被放到 hook 后面 const app = require('./app');
To parse and compile async methods, you should at least have the transform-async-to-generator or transform-async-to-module-method plugin.
For example , in your .babelrc file, you should have:
{ "plugins": ["transform-async-to-generator"] }
You can also use the target parameter "node": "current" of the env preset instead.
Application
Koa application is an object that contains a set of middleware functions, which are organized and executed in a stack-like manner. Koa is similar to many other middleware systems you may have encountered, such as Ruby's Rack, Connect, etc. However, a key design point is to provide high-level "syntactic sugar" in its low-level middleware layer. This improves interoperability, robustness, and makes writing middleware more enjoyable.
This includes methods for common tasks such as content negotiation, cache cleaning, proxy support, and redirection. Despite providing quite a lot of useful methods Koa still maintains a small size because there is no middleware bundled.
Required hello world application:
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000);
For more node-related knowledge, please visit: nodejs tutorial! !
The above is the detailed content of What is the relationship between koa and node?. For more information, please follow other related articles on the PHP Chinese website!