Koa ist ein leichtes, modernes Middleware-Framework, das vom Express.js-Team entwickelt wurde und es uns ermöglicht, asynchrone Middleware-Funktionen zu verwenden.
<code class="language-javascript">const Koa = require('koa'); const app = new Koa(); app.use(async function(ctx) { ctx.body = 'Hello'; }); app.listen(3000);</code>
Hier erstellen wir eine Koa-Instanz und richten eine Middleware ein, um bei jeder Anfrage „Hallo“ zurückzugeben.
Middleware ist eine Funktion, die eine HTTP-Anfrage empfängt und während des Anfrage-/Antwortzyklus auf die Anfrage antworten kann. Es kann auch die nächste Middleware in der Liste aufrufen. Hier ist ein Beispiel.
<code class="language-javascript">async function exampleMiddleware(ctx, next) { // 从 ctx(上下文)读取请求数据 // 更多逻辑 // 设置 ctx.body 作为响应 // 调用下一个中间件 await next(); // 在调用 next 之后,由于使用了 await 语法,我们可以做更多的事情。 // 例如记录所花费的时间 } // 设置中间件 app.use(exampleMiddleware);</code>
Mit dem Middleware-Framework können wir mehrere Middleware-Funktionen definieren und sie in der Reihenfolge ihrer Definition ausführen. Möglicherweise ist Ihnen der nächste Parameter im obigen Beispiel aufgefallen. Es handelt sich um eine Funktion, die beim Aufruf die Kontrolle an die nächste Middleware übergibt.
Durch die Verwendung asynchroner Funktionen können wir „await“ verwenden, um bestimmte Vorgänge stapelweise auszuführen, nachdem die Middleware ausgeführt wurde.
Wenn keine weitere Ausführung erforderlich ist, besteht keine Notwendigkeit, als nächstes anzurufen. Betrachten Sie beispielsweise eine Authentifizierungs-Middleware. Wenn der Benutzer angemeldet ist, wird next aufgerufen, andernfalls wird die Anmeldeseite angezeigt.
<code class="language-javascript">// 身份验证中间件 app.use(async (ctx, next) => { if(user){ // 调用列表中的下一个中间件 await next(); } else { // 显示登录页面 } }); // Hello 中间件 app.use(async (ctx) => { ctx.body = 'Hello'; });</code>
Wie Sie sehen, ist auch die Reihenfolge der Middleware wichtig.
Jede Middleware erhält zwei Parameter. Der erste ist context (abgekürzt als ctx) und der nächste.
ctx enthält Attribute aus der Anfrage. Darüber hinaus enthält es Setter, die auf Anfragen reagieren können.
Im Folgenden finden Sie eine Liste allgemeiner Attribute. Die vollständige Liste finden Sie hier.
名称 | 描述 |
---|---|
ctx.method | 当前请求方法 |
ctx.path | 当前请求路径 |
ctx.query | 查询字符串 |
ctx.body | 设置响应正文的设置器 |
app.use -dokument verwenden. Bitte beachten Sie, dass die Reihenfolge der Middleware wichtig ist.
<code class="language-javascript">const Koa = require('koa'); const app = new Koa(); app.use(async function(ctx) { ctx.body = 'Hello'; }); app.listen(3000);</code>
app.listen -dokument verwenden.
<code class="language-javascript">async function exampleMiddleware(ctx, next) { // 从 ctx(上下文)读取请求数据 // 更多逻辑 // 设置 ctx.body 作为响应 // 调用下一个中间件 await next(); // 在调用 next 之后,由于使用了 await 语法,我们可以做更多的事情。 // 例如记录所花费的时间 } // 设置中间件 app.use(exampleMiddleware);</code>
Verwenden Sie Ctx.Body Setter -Dokument.
<code class="language-javascript">// 身份验证中间件 app.use(async (ctx, next) => { if(user){ // 调用列表中的下一个中间件 await next(); } else { // 显示登录页面 } }); // Hello 中间件 app.use(async (ctx) => { ctx.body = 'Hello'; });</code>
<code class="language-javascript">app.use(middlewareFunction1); app.use(middlewareFunction2); app.use(middlewareFunction3);</code>
So erstellen Sie eine vollständige Anwendung
<code class="language-javascript">app.listen(3000);</code>
Um eine vollständige Anwendung zu erstellen, müssen wir die von der KOA -Community bereitgestellte Middleware verwenden. Das Folgende ist eine Liste der gemeinsamen Middleware.
Router
koa ist ein großartiges, leichter modernes Web -Framework zum Erstellen von API- und Webanwendungen. Weitere Dokumente finden Sie auf der KOA -Website.
Das obige ist der detaillierte Inhalt vonEinführung in Koa.js: Ein leichtes Framework für APIs und Web-Apps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!