如果我的的get、post**函式中,沒有next引數,那麼就匹配上第乙個路由,就不會往下匹配了。如果想往下匹配的話,那麼需要寫next()
(req,res,next));
(req,res));
下面兩個路由,感覺沒有關係:
(req,res));
(req,res));
但是實際上衝突了,因為admin可以當做使用者名稱 login可以當做id。
解決方法1:交換位置。 也就是說,express中所有的路由(中介軟體)的順序至關重要。
匹配上第乙個,就不會往下匹配了。 具體的往上寫,抽象的往下寫。
(req,res));
(req,res));
報錯,因為send了兩次。
解決方法2:
(req,res,next)else
10});
(req,res));
路由get、post這些東西,就是中介軟體,中介軟體講究順序,匹配上第乙個之後,就不會往後匹配了。next函式才能夠繼續往後匹配。
比如**: http:
(req,res));
如果寫乙個/
1//當你不寫路徑的時候,實際上就相當於"/",就是所有**
(req,res,next));
● 如果想寫乙個快速測試頁,當然可以使用res.send()。這個函式將根據內容,自動幫我們設定了content-type頭部和200狀態碼。send()只能用一次,和end一樣。和end不一樣在**?能夠自動設定mime型別。
● 如果想使用不同的狀態碼,可以:
res.status(404).send('sorry, we cannot find that!');
● 如果想使用不同的content-type,可以:
//這個語句,就在開啟伺服器的時候,執行一次。
//每次使用者訪問的時候,不執行這個語句
//路由從上往下找,找到就不向下找了,
(req,res,next)
else
});(req,res));
08.js/**
* created by danny on 2015/9/22 10:22. */
var express = require("express");
//當你不寫路徑的時候,實際上就相當於"/",就是所有**
(req,res,next));
//http://localhost:3000/haha/ssss是匹配不了的
//當你不寫路徑的時候,實際上就相當於"/",就是所有**
(req,res))
function
haha(req,res,next)
res.send(data.tostring());
});}
10.js/**
* created by danny on 2015/9/22 10:22. */
var express = require("express");
//靜態服務,一般靜態資源往上寫。不執行next();
//新的路由
(req,res));
//會自動識別err引數,如果有,那麼就這個函式能捕獲err
(req,res));
11.js/**
* created by danny on 2015/9/22 10:22. */
var express = require("express");
如果不想使用views資料夾,想自己設定資料夾名字,
(req,res));
});(req,res));
});
node中介軟體
前面的文章裡也介紹過了,express 是乙個簡潔 靈活的node.jsweb 應用開發框架,它提供一系列強大的特性,幫助你建立各種 web 和移動裝置應用。express專案的底層由許多的中介軟體在協同工作,可以這麼說,乙個express應用就是在呼叫各種中介軟體。中介軟體是乙個可訪問請求物件 r...
13 2 7 中介軟體
中介軟體顧名思義,是介於request與response處理之間的一道處理過程,相對比較輕量級,並且在全域性上改變django的輸入與輸出。因為改變的是全域性,所以需要謹慎實用,用不好會影響到效能。如果你想修改請求,例如被傳送到view中的httprequest物件。或者你想修改view返回的htt...
21 中介軟體
一 中介軟體的定義 1.中介軟體是django請求 響應處理的鉤子框架,它是乙個輕量級的 低階的 外掛程式 系統,用於全域性改變django的輸入或輸出 2.中介軟體以類的形式體現 3.每個中介軟體元件負責做一些特定的功能,例如django包含乙個中介軟體元件 authenticationmiddl...