express
是nodejs一個很著名的框架。 其地位就有點像react
在js裏面的地位。就算你不打算使用它,也能夠學習下,取長補短。express的核心就是中間件html
要實現的功能以下node
var express = require('express'); var app = express(); app.use(function(req, res){ res.send('hello express!'); }); app.listen(8001,function(){ console.log('監聽8001端口'); });
ok 上述代碼就實現功能一。默認監聽的本地IP 網址:http://localhost 它對於一切返回值都返回了hello express!
對比於nodejs的hello world.例子。細心的你會發現少了輸入res頭的步驟。res.writeHead(200,xxx)
,沒錯這是框架已經幫你處理掉的。默認就是200 text/html。固然你也能夠自定義返回頭,res.type()之類,具體請查看api。react
var express = require('express'); var app = express(); app.use(express.static('static', {Mixed: false})); app.use(function(req, res){ res.send('hello express!'); }); app.listen(8001,function(){ console.log('監聽8001端口'); });
你大概須要這樣的文件結構。express.static
是express4 目前僅保留的中間件,也是目前惟一保留的一箇中間件(可見其鋼需,與通用)。查看其中源模塊是serve-static。小小的一行中間件其實代碼量仍是很複雜。具體能夠看一篇文章nodejs實現靜態服務器。很細緻全面的說明了一個靜態服務器所要作的事情。
第一個參數'static'是表示靜態文件目錄名字沒有/說明是相對路徑哦 '/static'是絕對路徑,當你路由寫在其餘目錄裏要當心了區分下。
{Mixed: false}是當路徑爲'/'返回靜態文件下的不返回index.htmlexpress
var express = require('express'); var app = express(); app.use(express.static('static', {Mixed: false})); app.get('/get',function(req, res){ var data = {msg: '這是get'}; res.json(data); }); app.get('/post',function(req, res){ var data = {msg: '這是post'}; res.json(data); }); app.use(function(req, res){ res.send('hello express!'); }); app.listen(8001,function(){ console.log('監聽8001端口'); });
這樣就服務器就提供了兩個api接口,地址是'/get'和'/post',返回這時候就是一個json對象。用的方法是res.json()區別於res.send()就是組裝成json格式。 至此就完成了三個基本功能。邁出了第一步!json