ノード (5) -- エクスプレス

特急の基本的な使い方

httpモジュールの使用に関する問題

1.リクエストパスや処理方法が違うとやることが面倒

2. リクエストボディに従ってレスポンスボディを書くのがフローメソッドなので面倒

一般的なサードパーティ ライブラリ

1.急行

生態系は比較的完成されている

2.コア2

高度なテクノロジー、フレンドリーなインターフェースが優れています

マニュアル

公式サイト:http://expressjs.com

中国語サイト(民間サイト):https://www.expressjs.com.cn

2.nodemon

マニュアル: https://github.com/remy/nodemon#nodemon

1. サーバーを自動的に再起動します

1. cmd は直接起動します

npx nodemon index

2. package.json ファイルの script フィールドを変更します。

npm run "配置参数"

2.nodemon.json ファイルを構成する

{
    
    
    "env": {
    
    
      "NODE_ENV": "development"   //开发环境
    },
    "watch": ["*.js", "*.json"],  //修改哪些类型的文件会重启服务
    "ignore": ["package*.json", "nodemon.json", "node_modules", "public"]   //修改哪些文件和文件夹不会重启服务
}

3.エクスプレスミドルウェア

画像-20210329224033828

ミドルウェアの処理手順

1. リクエストが一致した場合

2. 最初の処理関数に処理を引き渡します。

3. 関数は処理のために後続のミドルウェアに手動で引き渡す必要があり、次のメソッドが呼び出されます。

処理の詳細

1. フォローアップにミドルウェアがない場合

Express は、応答が終了していない場合、Express は 404 で応答することを発見しました。

2. ミドルウェアでエラーが発生した場合

サーバーは停止しません

next(error object) の呼び出しと同等

後続のエラー処理ミドルウェアを探します。ない場合は、500 で応答します。

3. ミドルウェアが応答した場合、後続のミドルウェアを実行する必要がありますが、応答しません。

4. 一般的に使用されるミドルウェア

1.express.static()

スタティックサーボの取り扱い

2.express.json()

jsonのデータ形式を扱う

3.express.urlencoded()

文字のデータ形式を扱う

アレイ関連の面接の質問

1.地図

Array.prototype.sx_map = function (callback) {
    const res = []
    for (let i = 0; i < this.length; i++) {
        res.push(callback(this[i], i, this))
    }
    return res
}

console.log(players.sx_map((item, index) => `${item.name}--${item.num}--${index}`))

2.フィルター

Array.prototype.sx_filter = function (callback) {
    const res = []
    for (let i = 0; i < this.length; i++) {
        callback(this[i], i, this) && res.push(this[i])
    }
    return res
}

console.log(players.sx_filter(item => item.num >= 23))


3.毎

Array.prototype.sx_every = function (callback) {
    let flag = true
    for (let i = 0; i < this.length; i++) {
        flag = callback(this[i], i, this)
        if (!flag) break
    }

    return flag
}

console.log(players.sx_every(item => item.num >= 23)) // false
console.log(players.sx_every(item => item.num >= 0)) // true

4.減らす

Array.prototype.sx_reduce = function (callback, initValue) {
    let start = 0, pre
    if (initValue) {
        pre = initValue
    } else {
        pre = this[0]
        start = 1
    }
    for (let i = start; i < this.length; i++) {
        pre = callback(pre, this[i], i, this)
    }
    return pre
}

// 计算所有num相加
const sum = players.sx_reduce((pre, next) => {
    return pre + next.num
}, 0)
console.log(sum) // 85


おすすめ

転載: blog.csdn.net/qq_45256777/article/details/121322234