Nodejs Expressフレーム入門

26190 ワード

ノードのインストール
グローバルパスとキャッシュパスを設定します.
キャッシュ:npm config set cache「D:\web\Prograam ufilesodejsodeucache」
大域:npm config set prefix「D:\web\Programe ufilesodejsodebal」
npm config ls(-l)
紹介する
Nodejs Expressはnodeのウェブ開発フレームで、以下の特徴があります.
Uopinionation
設計モードの適用は制限されません(MVC、MVP)
コード仕様を制限しない
機能の選択を制限しない(View層を含むかどうかHTMLページを生成する)
本教程では、GET、POST、PUT、DELETE要求をexpressで処理するプレゼンテーションを行います.routerを使ってサブルーティングを定義します.データベースには関係ありません.
操作
準備工作
expressプロジェクトを作成して、nodejsプロジェクトを初期化します.
mkdir express-hello-world
cd express-hello-world
yarn init -y

yarn add express

code-insiders - //     vscode   
vscodeを開いて、app.jsファイルを作成します.
//   express  ,     
const express = require("express");
const app = express();

//       
const port = 3000;

//   listen            ,           
app.listen(port,() => {
console.log(`Express server listening at http://localhost:${port}`);
})


作成が完了したら、端末を開けて、入力コマンドnode app.jsがexpressサービスの起動に成功したらログExpress server listening at http://localhost:3000が表示されます.
locathostは本機の住所を代表して、この時expressサービスはすでに起動しましたが、今は何もできません.
このウェブサイトをブラウザで開くと、cannot GET /が表示されます.
これはプログラムがまだ処理されていないからです.urlルーティングとhttp要求があります.
GET要求を処理する
次に簡単なGET要求を処理するプログラムを作成します.
//   get  ,           ,          
//                ,            
//       ,       send  ,        
app.get("/",(req,res) => {
	res.send("Hello World");
});
この時、クライアントを再起動すると、Hello Worldが見えます.
POST要求を処理する
同じように、POSTの要求を処理する方法を編纂します.
//              Express      、        
app.use(express.json());

app.post("/",(req,res) => {
	console.log("     :",req.body);
	res.status(201).send();
});
postmanを使用します.http://www.postman.comダウンロード
postmanを開いて、私達が作成したexpressサーバアドレスhttp://localhost:3000の左のオプションを入力してPOSTを選択し、bodyを選択し、チェックボックスの部分はrawを選択し、プルダウンメニュー選択jsonは下のテキストボックスでサンプルデータを作成します.
{
	"name":"Cerelise"
}
sendボタンをクリックして、戻ってきた201の状態コードが少し待ってください.要求体をプリントアウトしたjsonのデータが見えます.
PUT要求を処理する
putはサーバ上のリソースを更新するために使用され、既存のリソースの一意の識別を知る必要があります.一般的にデータベースのidで、クライアントがput要求を送信するとき、urlに識別パラメータを提供し、その後にexpressにおいて解析し、識別に応じてサーバのリソースを更新します.
putメソッドを呼び出してput要求経路の後のコロンIDを作成するとルートパスの後の値が要求のパラメータとなり、IDという変数に割り当てられます.例えばhttp://localhost:3000/3、このときのidの値は3です.
//          req.params.id
//           ,   200
app.put("/:id",(req,res) => {
	console.log("      ,id :",req.params.id);
	console.log("     :",req.body);
	res.send();
})
サーバーを再起動し、postmanでのテスト要求
PUTを選択してください.パスはhttp://localhost:3000/3です.インスタンスを記入するかそれともjson形式ですか?
{
	"name":"Trump"
}
送信をクリックして200のステータスコードを返して端末に戻ると、IDの値と要求体のjsonデータが表示されます.
DELETE要求を処理する
deleteはサーバのリソースを削除するために、putと同じように一意の識別が必要です.ここでdelete方法を使って、最後に204コードを返します.削除された要求を表します.
app.delete("/:id", (req,res) => {
	console.log("      ,id :",req.params.id);
	res.status(204).send();
})
サービスを再起動し、postmanを使ってテストを行います.
タブをコピーして、DELETEを選択して、bodyを削除します(チェックボックスはnoneを選択します).
sendをクリックして、204の状態コードが戻ってきました.
端末も要求パラメータをプリントアウトしました.
ルートの例を作成
一つのexpressプロジェクトに対して、多くのグループのappiがあります.
記事/post
製品/プロジェクト
オーダー/order
サブルーティング処理に割り当て、ここでは記事を例にPOSTのルーティングをシミュレートする.
routesフォルダを作成し、中にpost.jsファイルを新規作成します.
expressを導入して、サブルーティングを処理するためのrouteのインスタンスを作成します.
次にap.jsの4つの要求処理コードをpost.jsにコピーし、apをrouteに変えて、文字を少し変えます.
const express = require("express");
const route = express.Router();

// GET        
route.get("/",(req,res) => {
	res.send({ id: 1, title: 'express    ·'});
});

//  POST PUT                   ,      
app.post("/",(req,res) => {
	console.log("    :",req.body);
	res.status(201).send({ id:2,...req.body });
});

route.put("/id",(req,res) => {
	console.log("      ,  id :",req.params.id);
	console.log("     ,       :",req.body);
	res.send({id:req.params.id, ...req.body});
})

route.delete("/:id", (req,res) => {
	console.log("      ,  id :",req.params.id);
	res.status(204).send();
})

//          
module.exports = route;
最後に、メインルート(ap.js)で導入し、そして/POSTにマウントして、サブルーティングに割り当てます.
//   express  ,     
const express = require("express");
const app = express();

//       
const port = 3000;
const post = require("./routes/post");

app.use(express.json());

app.use("/post",post)
routes(app);

app.get("/",(req,res) => {
	res.send("Hello World");
});

app.post("/",(req,res) => {
	console.log("     :",req.body);
	res.status(201).send();
});

app.put("/id",(req,res) => {
	console.log("      ,id :",req.params.id);
	console.log("     :",req.body);
	res.send();
})

app.delete("/:id", (req,res) => {
	console.log("      ,id :",req.params.id);
	res.status(204).send();
})

//   listen            ,           
app.listen(port,() => {
console.log("Express server listening at http://localhost:${port}");
})


サービスを再起動して、POSTの要求をテストします.
プロジェクトには複数のサブルートがあるので、ap.jsファイルがあまりにも巨大でないように、ルーティングを統一的に処理するためのINdex.jsを新設し、サブルートを導入して関数を導出し、apオブジェクトを受信し、サブルーティングをマウントすることができます.
const post = require("./post");
moudle.exports = (app) => {
	app.use("/post",post);
};
後はap.jsにroutesフォルダを導入するだけです.
routes(app);