ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js の Express フレームワークの詳細
この記事では、Node.js の Express フレームワークについて詳しく説明します。一定の参考値があるので、困っている友達が参考になれば幸いです。
多くの言語には、プロジェクトの開発と保守をより迅速に行うのに役立つフレームワークがいくつかあります。たとえば、JS には、Vue、React、Angular などの一般的なフレームワークがあります。 Node .js も例外ではなく、Node.js プロジェクトの開発に役立つフレームワークがいくつかあります。
現在、より人気のある Node.js フレームワークは、Express
、Koa
、Egg.js
です。どの Node.js フレームワークであっても、 , ミドルウェアをベースに実装されており、ミドルウェアの実行方法はオニオンモデルに基づいている必要があります。 [推奨学習: 「nodejs チュートリアル」]
抽象的な説明、タマネギの中心点を通過するには、まずタマネギの皮を層ごとに中心点まで内側に貫通し、次に中心点から層ごとに外側に移動します。中心点 表皮の貫通 、ここに特徴があります: 入るときに表皮の何層を貫通し、出るときに表皮の何層を貫通する必要があるか。最初に表皮に浸透し、次に表皮から出るこの構造は、スタック構造の先入れ後出しの原理に沿っています。
Node.js フレームワークでは、玉ねぎの皮をmiddleware:
;
Express は、Node.js の HTTP サービスのフレームワークです。フレームワークを理解するには、次のようにします。最良の方法は、
Express の Web サイト にアクセスして、その 機能 を参照してください。これらのコア機能はすべて、より便利で簡潔になるように設計されています。 Provide HTTP サービスを作成することで、開発の負担が大幅に軽減され、迅速に開発を開始できるようになります。
いくつかの
機能:
属性を単純化することで、対応する属性を変換せずに直接使用できるようになります。
request、
query など
response、
json()、
jsonp() など
##ミドルウェア (#Async は
Express
clone にアクセスできます。
index.js Express を変換するには、最初に express
を
npm
npm iexpress とともにインストールする必要があります。
const fs = require('fs'); const express = require('express'); const game = require('./game'); let playerWon = 0; // 赢的次数 const app = express(); // 路由功能,将对应路由功能分开作为模块处理,到时候也可以放到其它文件去 // 通过 app.get 设定 /favicon.ico 路径的路由 // .get 代表请求 method 是 get,所以这里可以用 post、delete 等。这个能力很适合用于创建 rest 服务 app.get('/favicon.ico', function (request, response) { // 一句 status(200) 即可代替 writeHead(200); end(); // response.writeHead(200); // response.end(); response.status(200); return; }) // 打开页面 index.html app.get('/', function (request, response) { // fs.createReadStream(__dirname + '/index.html').pipe(response); // send接口会判断你传入的值的类型,文本的话则会处理为text/html // Buffer的话则会处理为下载,html文件需要加上 `utf-8` response.send(fs.readFileSync(__dirname + '/index.html', 'utf-8')) }) // next()同步状态下没有问题的,但是一旦有了异步,洋葱模型就打破了 app.get('/game', function (request, response, next) { if (playerWon >= 3) { response.status(500); response.send('我不会再玩了!'); return; } // 通过next执行后续中间件 next(); // 当后续中间件执行完之后,会执行到这个位置 if (response.playerWon) { playerWon++; } }, // 获取玩家的操作 function (request, response, next) { // Express 中对 request 做了一些处理,可以直接拿到 query 参数 // const query = querystring.parse(parsedUrl.query); // const playerAction = query.action; const query = request.query; const playerAction = query.action; response.playerAction = playerAction; // 通过next执行后续中间件 next(); }, function (request, response) { // 通过 response 去挂载一些参数 let playerAction = response.playerAction; // 执行游戏逻辑 const gameRes = game(playerAction); // 先返回头部 // response.writeHead(200); response.status(200); // 根据不同的游戏结果返回不同的说明 if (gameRes == 0) { // response.end('平局!'); response.send('平局!'); } else if (gameRes == 1) { response.send('你赢了!'); // 玩家胜利次数统计+1 // playerWon++; response.playerWon = true; } else { response.send('你输了!'); } } ) app.listen(3000);
コード アドレス: https://github.com/V-vincent/node-introduction
プログラミング関連の知識については、こちらをご覧ください:
プログラミングビデオ! ! 以上がNode.js の Express フレームワークの詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。