一、什么是路由?
URL : http://localhost:8000/login ===> login就是路由
应用:
首先拿到URL ,然后在server.js里面解析,用正则表达式,把根目录下边的类似login 还是其他的,要访问的字符串拿到;访问一个路由的js文件,通过这个传入的字符串去访问对应的方法。
截取字符串,到路由中找到相应的方法,进行读取,拿到相应的HTML文件,再把HTML的内容显示到页面上。
二、应用
1、怎么拿到URL?
①、新建
②、内容
var http = require('http'); //node.js 自带的 var url = require('url'); //var router = require('./router'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); if(request.url!=="/favicon.ico"){ //拿到URL var pathname = url.parse(request.url).pathname; //正则 pathname = pathname.replace(/\//, '');//替换掉前面的/ ,变成空字符串 console.log(pathname); response.end(''); } }).listen(8000); console.log('Server running at http://127.0.0.1:8000/');
③、运行
④、不加 pathname = pathname.replace(/\//, '');//替换掉前面的/ ,变成空字符串 之前运行出来的是:
当然,你也可以把login 换成是其他的单词也是可以的!!
三、从URL中获取路由信息 ,通过路由字符串调用对应的函数
1、新建luyou
2、内容
//声明函数集 module.exports={ login:function(req,res){ res.write("我是login方法"); }, setin:function(req,res){ res.write("我是注册方法"); } }
3、在n4中添加信息
var http = require('http'); //node.js 自带的 var url = require('url'); //获取luyou.js var luyou = require('./luyou'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); if(request.url!=="/favicon.ico"){ //拿到URL var pathname = url.parse(request.url).pathname; //正则 pathname = pathname.replace(/\//, '');//替换掉前面的/ ,变成空字符串 console.log(pathname); luyou[pathname](request,response); response.end(''); } }).listen(8000); console.log('Server running at http://127.0.0.1:8000/');
4、运行
我先运行了login,然后运行的setin,不是运行一个出来两个结果!!