express的路由

就是 app.get()、app.post()、app.all()啦,啦啦啦javascript

(其中,var express = require("express"); var app = express();)java

以前曾經遇到作一個頁面,get沒問題,提交就報404錯誤,後來發現癥結在於路由設置,只寫了個app.get,意味着只容許GET請求,而不容許POST或其餘。法無受權則禁止,法治社會,呵呵呵呵呵呵呵。node

說到底,它們都是app.use的別名,呵呵呵呵呵呵。固然,使用get,post等比較專業、合適一點。jquery

這幾個函數,除了名字有別,格式是同樣的。都是相似git

app.get(路由規則,函數);程序員

var express = require('express');
var app = express();

app.get("/",function(req,res){
	res.send("Hello World!");
});
app.get("/hi/leftfist",function(req,res){
	res.send("hello, 左直拳 !");
});
//模式匹配;?號表明能夠忽略
app.get("/hi/:who?",function(req,res){
	var who = req.params.who || 'anonymous';
	res.send("hello, " + who + " !");
});
// 或/commits/71dbb9c..4c084f9這樣的git格式的網址
app.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, function(req, res){
  var from = req.params[0];
  var to = req.params[1] || 'HEAD';
  res.send('commit range ' + from + '..' + to);
});
//404
app.get("*",function(req,res){
	res.send("404!");
});

var server = app.listen(3000,function(){
	console.log("http server is ready on 3000");
});

這就是路由的設置。所謂「路由」,就是指爲不一樣的訪問路徑,指定不一樣的處理方法。之前,說路由,都想到路由器;後來接觸了ASP.NET MVC後,裏面纔有所謂路由規則。

以往,埋頭只知開發WEB FORM,而後在IIS下跑,每一個URI,其實都是有一張張實實在在的頁面(Page)與之對應,不然就報404錯誤,Page not found。這種氛圍之下,作夢也想不到還有路由規則這種東西。說白了,HTTP服務器就是提供服務,對於瀏覽器發過來的請求,如何解釋,如何響應,徹底取決於HTTP服務器如何工做。或者說,你瀏覽器發過來請求,我http服務器讓你看什麼,你就看什麼。在IIS + WEB FORM中,瀏覽器請求某一個頁面,而後真的有一個頁面返回,那是由於IIS真的是將物理頁面的內容讀取,加上對動態內容的解釋,而後返回;假如這個IIS它不去讀取物理頁面,只返回一句Hello World,那瀏覽器就只能看到一句Hello World!固然,IIS咱們比較難改動,但咱們也能夠寫一個Http Module 或 Http Handler來攔截請求;然而在IIS6或更低版本,這種機制,只對請求.aspx頁面有效。而且在IIS那種方便的傻瓜式操做中,通常程序員,怎麼會想到有這種所謂的攔截?我之前搞微軟的ASP.NET,一直搞,一直搞,歷來不明白什麼叫Http Module,Http Handler,只在用asp.net 的atlas(微軟爲了方便程序員使用jquery,而提供的一種控件)的時候,須要配置web.config裏有見過,但感到很複雜,使人畏懼,沒有作什麼瞭解。IIS的操做對象,就是文件夾,物理頁面,因此微軟系程序員也就傻逼地認爲所謂的路由,就是必定要有真實的頁面與之對應!哪裏像node.js,路由由本身編寫,容許的請求方法也由本身決定,寫一次代碼下來,原理就能(被迫)有個大體的瞭解。web

微軟的問題在於沒有區分業餘和專業兩個概念,也許是windows作得太成功了,讓電腦走進了千家萬戶,傻逼都會使用,因而也把這套思想放到開發工具上來,意圖把程序開發也搞成像windows、office同樣,人人能用,至少入門門檻很是的低。簡單易用的圖形界面背後,掩蓋了最須要被理解的原理,甚至是爲了方便使用,斷章取義地扭曲了原理,像上述那個IIS和Page就是活生生的例子。這樣子的作法,入門是容易了,但開發人員對原理不理解,形成進階舉步維艱,或者只能作出一些玩具級的應用。express

2013年我有幾個月去當了老師,發現老師這份職業極其無聊。由於老師的重點在於將知識講授明白,形成一些簡單的東西也要大費口舌,主要精力不在作學問上,因此老師的水平只能是科普水平。一樣,也許正是因爲微軟的精力主要在於打造易於入門、易於使用的開發工具,所以微軟的產品,大師級技術水平的東西很少,許多開創性的概念都不出自微軟;微軟只能亦步亦趨地跟在業界後面,拾人牙慧,而後繼續將一些成熟理論包裝,搞成易於使用的傻瓜產品,好比asp.net mvc。與此同時,又不得不不斷拋棄一些本身封裝出來的弱智工具,好比visual foxpro,silverlight,WPF,visual j++ 之類的狗屁。跟着微軟走,只能吃屎了。
windows

相關文章
相關標籤/搜索