標籤:

node函數 node路由

node函數 node路由

# node函數

js中一個函數可以作為另一個函數的參數,即先定義一個函數,然後傳遞

## 匿名函數

這個學過,過

# node路由

要為路由提供請求的url,和其他需要的get的post請求。

隨後,路由會根據需要進行執行響應的代碼。

因此,需要根據http請求,從中提取中需要的url和get和post參數

## 兩個模塊,url和qureystring模塊

```

localhost:8888/start?

這個url中

url.parse(string).pathname start

url.parse(string).query 參數部分即問號後面的內容

querystring.parse(queryString)[foo] bar內容

querystring.parse(queryString)[hello] word內容

```

這是說明

## 提取url

```

var http = require(http);

var url = require(url);

(function start() { // 創建一個命名空間

function onRequest(request, response) {

var pathname = url.parse(request.url).pathname; // 提取出來url的內容

console.log(pathname);

response.writeHead(200, {Content-Type: text/plain});

response.write(hello word);

response.end();

};

http.createServer(onRequest).listen(1937);

}());

```

訪問連接 127.0.0.1:1937/hello%20

127.0.0.1:1937/hello%20

返回消息

```

PS C:UsersmingmDesktop est> node main.js

/hello%20word

/favicon.ico

/hello%20word.html

/favicon.ico

```

兩個請求,一個是hello word的請求,由於url不支持空格,所以用%20進行替代,node返回客戶端請求的是hello word

favicon.ico是瀏覽器默認的一個請求,若沒有圖標文件的緩存都會對伺服器請求一個圖標文件

## 編寫一個路由

```

PS C:UsersmingmDesktop est> node index.js

Server has started.

hello word!

hello word!

```

文件結構

```

- test

router.js

server.js

index.js

```

文件內容

```

// router.js

function route(pathname) {

console.log("hello word!");

};

exports.route = route; // 導出方法

// server.js

var http = require(http);

var url = require(url);

function start(route) {

function onRequest(request, response) {

var pathname = url.parse(request.url).pathname;

route(pathname); // 使用route的js模塊(已經在router.js文件導出)傳入的參數的值為pathname

response.writeHead(200, {Content-Type: text/html});

response.write(<head><meta charset="utf-8"></head>);

response.write(Hello word! hello word!);

response.end();

};

http.createServer(onRequest).listen(1937);

console.log("Server has started.");

};

exports.start = start;

// index.js

var server = require(./server);

var router = require(./router);

server.start(router.route);

```

訪問結果

```

127.0.0.1:1937/

Hello word! hello word!

```


推薦閱讀:

使用模塊化工具打包自己開發的JS庫
Webpack 4 配置最佳實踐
zzz 周刊 - 第1043期 - 霓裳風華
web前端開發介紹
不要用JWT替代session管理(上):全面了解Token,JWT,OAuth,SAML,SSO

TAG:前端開發 |