node函数
js中一个函数能够作为另一个函数的参数,即先定义一个函数,然后通报
匿名函数
这个学过,过
node路由
要为路由供应要求的url,和其他须要的get的post要求。
随后,路由会依据须要举行实行相应的代码。
因而,须要依据http要求,从中提取中须要的url和get和post参数
两个模块,url和qureystring模块
http://localhost:8888/start?foo=bar&hello=word
这个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);
}());
接见衔接 http://127.0.0.1:1937/hello%20word.html
http://127.0.0.1:1937/hello%20word
返回音讯
PS C:\Users\mingm\Desktop\test> node main.js
/hello%20word
/favicon.ico
/hello%20word.html
/favicon.ico
两个要求,一个是hello word的要求,因为url不支持空格,所以用%20举行替换,node返回客户端要求的是hello word
favicon.ico是浏览器默许的一个要求,若没有图标文件的缓存都会对服务器要求一个图标文件
编写一个路由
PS C:\Users\mingm\Desktop\test> 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);
接见效果
http://127.0.0.1:1937/
Hello word! hello word!
个人博客
www.iming.info