Express NodeJs Webフレーム学習ノート(二)
17873 ワード
原文リンク燕帰り-Express NodeJs Webフレーム学習ノート(二)
前の勉強を続けて、簡単なExpressではなく、インストールの使用方法を学びました.これからさらに医学Expressルート、中間部品及びデータベースの持続化処理を学びます.
Routeモジュール
上記の例では、下記のコードを使ってルートを作成することができます. GET/ を作成します. GET/book/nodejs を作成します. POST/book/を作成する.
その中/book/**はルートモジュールに単独で保存されます.
中間部品、英語
修正
統合持久層(redis)
NodeJSは多くのデータベースの持続的な操作をサポートしています.例えば、頻繁に使われるRedis、Mysql、MongoDBなどです.ここでは簡単にredisを使ってテストしてみます.まず、需要を教えてください.はPOST/redis/として要求を作成します.contentはredisにcontentを書き込みます. は、GET/redisユーザが取得する前の設定 を作成する.
Ps:ここはdockerを使ってレディスサーバーを配置しました.以下の通りです.
前の勉強を続けて、簡単なExpressではなく、インストールの使用方法を学びました.これからさらに医学Expressルート、中間部品及びデータベースの持続化処理を学びます.
Routeモジュール
上記の例では、下記のコードを使ってルートを作成することができます.
var express = require('express')
var app = express()
app.get("/",function(req,res,next){})
app.get("/book",function(req,res,next){})
app.post("/book",function(req,res,next){})
明らかにこれは私たちのコード管理に不利です.したがって、ここにexpress.Route
モジュールを導入して、モジュール化してルートを処理します.その中/book/**はルートモジュールに単独で保存されます.
app.js
同級ディレクトリの下でbook.js
ファイルコードの内容を作成します.var express = require('express');
// router
var router = express.Router();
// router
router.get('/:id', function (req, res, next) {
var book = {
id: req.params.id,
name: " NodeJS"
};
res.send(JSON.stringify(book))
});
router.post("/", function (req, res, next) {
res.send("POST /book")
});
//
module.exports = router;
同じapp.js
では、上のrouterファイルを導入する必要があります.//
var express = require('express')
var app = express()
// router
var book_router = require('./book')
// port
const port = 3030;
// app router
app.use('/book',book_router)
// GET
app.get("/",function(req,res){
res.send("Hello,World");
});
// , callback()
app.listen(port,function(){
console.log(`Express ${port} `);
});
アプリケーションを起動し、コマンドラインにアクセスすると、次のような結果になります.$ curl -XGET http://localhost:3030/
Hello,World
$ curl -XGET http://localhost:3030/book/ISBN-123
{"id":"ISBN-123","name":" NodeJS"}
$ curl -XPOST http://localhost:3030/book/
POST /book
NodeJsのミドルウェア中間部品、英語
middleWare
、すべての要求の消費時間情報及びURLをコンソールで印刷する必要があると仮定すると、各ルートにコードを付けます.明らかに愚かです.これらのルーティング要求のために中間部品を設定し、中間部品を利用して統計を完成します.修正
appjs
コードは以下の内容である.//
var express = require('express')
var app = express()
const port = 3030
/**
*
* @param req ---> requesr
* @param res ---> response
* @param next --->
*/
function logMiddleWare(req, res, next) {
var url = req.originalUrl;
//
var start = Date.now();
// request ,
req.start_time = start
// ( callback)
next();
//
var end = Date.now();
//
console.log(`${url} :`, end - start, "ms");
}
//
app.use(logMiddleWare)
app.get("/time", function (req, res, next) {
console.log(` start_time = ${req.start_time}`);
res.send(`/
${req.start_time}`);
});
//
app.listen(port, function () {
console.log(` ${port} `);
});
私たちは以下をテストしますcurl -XGET http://localhost:3030/time
は
1541220185998
を返します.ここでは主にコンソールの印刷情報を見ます. 3030
start_time = 1541220185998
/time : 6 ms
まず、サービスが3030ポートで開始された情報を見ることができます.その後、私たちは要求/timeを開始し、start_を記録しました.timeは、requestに書き込み、続いて/timeのコールバック関数にこのパラメータを印刷し、実行が完了したら、引き続きlogMiddleWareに戻ってend_を記録します.タイム、プリントアウト時間は6 msです.統合持久層(redis)
NodeJSは多くのデータベースの持続的な操作をサポートしています.例えば、頻繁に使われるRedis、Mysql、MongoDBなどです.ここでは簡単にredisを使ってテストしてみます.まず、需要を教えてください.
Ps:ここはdockerを使ってレディスサーバーを配置しました.以下の通りです.
$ docker pull redis
$ docker run -d -p 6379:6379 --name redis_6379 redis
$ docker ps # Redis
# redis `docker restart redis_6379`
まず、インストールredis依存が必要です.プロジェクトディレクトリの下でnpm install redis --save
をインストールすればいいです.app.js
を修正した内容は以下の通りです.//
var express = require('express');
var redis = require('redis')
var app = express()
const port = 3030
const redis_port = 6379
// Redis client 6379
var client = redis.createClient(redis_port,'localhost');
/**
* Redis , redis ,
*/
client.on('error',function (error) {
console.log("Redis ")
});
app.post("/redis/:content",function (req, res, next) {
var content = req.params.content;
// redis KV
client.set('KEY',content)
res.send("Redis ")
})
app.get("/redis",function (req, res, next) {
client.get('KEY',function (err, value) {
res.send(value)
})
})
//
app.listen(port, function () {
console.log(` ${port} `);
});
テスト内容は以下の通りです$ curl -XPOST http://localhost:3030/redis/Keep_it_simple_and_stupid
Redis
$curl -XGET http://localhost:3030/redis
Keep_it_simple_and_stupid
もちろん、Redisクライアントでデータを検索することもできます.