blog

ノード

Koaオニオンモデル リクエストからレスポンスまでの合計時間 非同期で複数のミドルウェア内でパラメータを渡す httpステータスコード 302リダイレクトのシミュレーション...

Dec 24, 2020 · 2 min. read
シェア

Koa

エイリアス:いくつかの一般的なプロパティやメソッドをCTXにフックする。
/**
 * new Koa -> Application  
 * context コンテキスト・オブジェクト
 ctx -> context コンテキスト・オブジェクト
 ctx.request リクエストオブジェクト
 ctx.response レスポンスオブジェクト
 
 ctx.res -> res
 ctx.req -> req
 */
const Koa = require("koa");
const app = new Koa();
app.use((ctx) => {
 // ctx.body = "ハローワールド";
 // ctx.body = {
 // msg:"ハローワールド"
 // };
 // end()
// エイリアス:いくつかの一般的なプロパティやメソッドをCTXにフックする。
// ブラウザに送信されるすべてのレスポンス・オブジェクトを探す
// ブラウザからリクエストオブジェクトを探す。
// ctx.body = "hello world";
ctx.response.body = "hello world"
 
});
app.listen(8081);

オニオンモデル

// ミドルウェア:この関数が使われている
// ミドルウェアを追加する
app.use((ctx, next) => {
 console.log(">>>> fn1");
 next();
 console.log("<<<< fn1 ------------------------");
 ctx.body = "fn1"
});
app.use((ctx, next) => {
 console.log(">>>> fn2");
 next()
 console.log("<<<< fn2");
 ctx.body = "fn2"
});
app.use((ctx, next) => {
 console.log(">>>> fn3");
 next()
 console.log("<<<< fn3");
});

リクエストからレスポンスまでの合計時間

// log  
app.use((ctx, next) => {
 const startTime = Date.now();
 next();
 console.log("time:", Date.now() - startTime);
});
app.use((ctx) => {
 ctx.body = "hahahah ";
});

非同期

app.use(async (ctx, next) => {
 const startTime = Date.now();
 await next();
 console.log("time:", Date.now() - startTime);
});
app.use(async (ctx) => {
 await delay();
 ctx.body = "hahahah ";
});
function delay() {
 return new Promise((resolve, reject) => {
 setTimeout(() => {
 resolve();
 }, 2000);
 });
}

複数のミドルウェア内でのパラメータの受け渡し

// 複数のミドルウェア間でパラメータを渡す
app.use((ctx, next) => {
 ctx.kkb = {
 name: "hahah",
 };
 next()
});
app.use((ctx) => {
 console.log(ctx.kkb.name);
});
app.listen(8081);

http

302リダイレクトのシミュレーション

const Koa = require("koa")
const app = new Koa()
app.use((ctx) => {
 ctx.status = 302
 ctx.set('location', 'https://..com/')
})
app.listen(8081)
Read next

APPの旅

最近、上記のデータをクロールし、データ分析と視覚化だけでなく、主に近年で行われているかを知るために、最終的なワードクラウドマップを作成し\n\nクローラーは本当に単純ではありませんああ、物事はあなたが学ぶほど、それはより困難です!ハハハ\n\n\n週末の食べ物\nこれは今週の食べ物、概要の非常に良い生産特性です。

Dec 23, 2020 · 13 min read