express從入門到**的學習旅程
**node**具有較強的模組化思想,二進位制流處理等都是原始的node所沒有的,這些都是後來通過modules模組擴充套件的。
一個檔案是一個模組,每個模組都有自己的作用域。
++nodejs有自己的模組載入系統require('模組')
express配置與路由 `app.use(function handle(req,res,next){})`
method HTTP/1.1 狀態碼 OK/Bad Request
[headers請求頭]
request代表從客戶端接收到的HTTP請求
response代表伺服器端需要響應到客戶端的響應內容
*/
/*require() 用於在當前模組中載入和使用其他模組;此方法是模組的基礎,使用中大概有路徑的概念就行
一個模組的程式碼只會在模組第一次被使用時執行,不會因require多次而被初始化多次。*/
var express = require('express');
/*express() 表示建立express應用程式*/
var app = express();
/*app.get(name);
的作用是獲取設定項name的值*/
/*每個中介軟體(middleware)都有三個引數,req、res和next。
request-----middleware1-----middleware2-----middleware3-------url------reponse
該過程中,如果不呼叫next那麼express不會自動呼叫下一個middleware*/
一個檔案是一個模組,每個模組都有自己的作用域。
++nodejs有自己的模組載入系統require('模組')
express配置與路由 `app.use(function handle(req,res,next){})`
request = {
method: 'POST',
path: '/yorkie',
headers:{
'Content-Type':'application/json',
...
},
...
}
method HTTP/1.1 狀態碼 OK/Bad Request
[headers請求頭]
{body請求體}
/*request代表從客戶端接收到的HTTP請求
response代表伺服器端需要響應到客戶端的響應內容
*/
/*require() 用於在當前模組中載入和使用其他模組;此方法是模組的基礎,使用中大概有路徑的概念就行
一個模組的程式碼只會在模組第一次被使用時執行,不會因require多次而被初始化多次。*/
var express = require('express');
/*express() 表示建立express應用程式*/
var app = express();
/*app.get(name);
的作用是獲取設定項name的值*/
/*每個中介軟體(middleware)都有三個引數,req、res和next。
request-----middleware1-----middleware2-----middleware3-------url------reponse
該過程中,如果不呼叫next那麼express不會自動呼叫下一個middleware*/
app.get('/category',function(req,res){
/*設定狀態碼為200*/
res.status(200);
/*設定響應的json報文*/
res.json({
python: 20,
nodejs: 1,
others: 10
});
});
var questions = [
{
id:1,
title:'t1',
asker:'you',
course: 'nodejs',
'last-reply':Date.now(),
reply:1,
state:'resolved'
},{
id:2,
title:'t2',
asker:'you',
course:'nodejs',
'last-reply':Date.now(),
reply:1,
state:'unresolved'
}
]
app.get('/questions',function(req,res){
res.status(200);
res.json(questions);
});
/*可以將第一個引數看作是拼接到當前地址後的url,此處all顧名思義是獲取questions的全部內容*/
app.get('/questions/all',function(req,res){
res.status(200);
res.json(questions);
});
app.get('/questions/resolved',function(req,res){
res.status(200);
/*array.filter(callback[thisObject])*/
res.json(questions.filter(function(q){
return q && q.state === 'resolved';
}));
});
app.get('/questions/unresolved',function(req,res){
res.status(200);
/*array.filter(callback[thisObject])*/
res.json(questions.filter(function(q){
return q && q.state === 'unresolved';
}));
});
/*app.listen() 就是在給定的主機和埠上監聽請求,這個和node中http模組的http.createServer(function(){...}).listen()效果一致*/
app.listen(3000);
相關文章
- Java學習從入門到精通Java
- 真正的Java學習從入門到精通Java
- Java學習從入門到精通的學習建議Java
- Vue學習從入門到精通(一)Vue
- 【深度學習】--GAN從入門到初始深度學習
- 真正的Java學習從入門到精通(轉)Java
- Java學習路線從入門到入土Java
- Java學習從入門到精通[原創]Java
- Java學習從入門到精通(3)(轉)Java
- Java學習從入門到精通(2)(轉)Java
- php從入門到精通的學習路線分享PHP
- 學習JVM是如何從入門到放棄的?JVM
- 新手學習Java,如何快速從入門到精通!Java
- Java 從入門到高階學習路線Java
- 從入門到精通,Java學習路線導航Java
- 從安裝到入門:ElasticSearch 快速學習手冊Elasticsearch
- 從入門到掌握 - 系統學習shell語言
- 【深度學習】--DCGAN從入門到例項應用深度學習
- Java從入門到精通的學習路線你知道嗎?Java
- Python學習從入門到放棄?我不允許!!!Python
- 學習C語言的必備書籍-從入門到精通C語言
- 前端學習 node 快速入門 系列 —— 報名系統 - [express]前端Express
- scala 從入門到入門+
- makefile從入門到入門
- 學習Python從入門到精通需要多長時間?Python
- React從入門到精通學習系列之(1)安裝ReactReact
- python爬蟲從入門到放棄前奏之學習方法Python爬蟲
- kafka從入門到關門Kafka
- Express快速入門Express
- Java學習福利,入門到精通學習路線分享Java
- 大資料架構師從入門到精通 學習必看寶典大資料架構
- 2018大資料學習路線從入門到精通大資料
- python程式設計:從入門到實踐學習筆記-字典Python程式設計筆記
- 第一課 以太坊開發從入門到精通學習導航
- 《python 程式設計從入門到實踐》序:學習目標Python程式設計
- NGUI從入門到實戰第1章開啟NGUI學習之旅NGUI
- 深度學習從入門到進階的12個經典問題及解答深度學習
- Vue入門到關門之Vue3學習Vue