Node.js带你走进前后端分离的项目开发(二) ——路由的搭建

 

1 引言

在上一篇文章(HTTP介绍与node环境搭建)中已经搭建好了一个可以允许js运行的node环境。

2 问题分析

本文讲述路由的搭建:

什么是路由:所谓路由就是web服务器会根据用户输入的不同url(实际是path不同, domain是相同的, 包括协议, host port)返回不同的页面。有了路由之后,如果想要将自己的代码运行于服务器上时,也就简单一点了只需更改少数代码即可。

3 解决方案

  • 什么是HTTP
  • 运行环境配置
  • 路由的搭建
  • 首页的图片显示
  • 登录的实现

 

 

 

三、 路由的搭建

路由的搭建分为七步:创建一个 http 服务器;设置响应头;分析url;实例化外部模块:使用module.exports模块;异常处理;停止监听。

创建一个http服务器

crateServer函数用来创建一个HTTP服务器,并将 requestListener 作为 request 事件的监听函数(http.createServer([requestListener]))。

requstListener请求处理函数

req  request缩写:请求对象,其中最关键的就是url属性

res  response缩写:响应对象

**但由于crateServer()函数属于http模块,使用前需要引入http模块(var http= require(http)

设置响应头

res.writeHead:这个方法有两个参数,第一个参数表示对应的编码的状态值,第二个表示对应的设置在实际开发中,我们需要返回对应的中文以及对应的文本格式,所以我们需要设置对应的响应头,响应头决定了对应的返回数据的格式以及编码格式.

分析 url

通过req.url能够得到用户请求的url,解析其url后就能够得到具体的某个页面,

1parse()能够将完整的url分为许多部分:hostportpathnamepathquery等。

2、且默认输出(.pathname())会带有斜杠。若想后续对路径进行分析,需去掉斜杠,使用正则表达式:.replace(/\//,'')

实例化外部模块

通常我们会将具有一定特性的代码块放入一个js文件中,因此我们会将真正实现页面的部分封装成一个路由,因此同样是需要使用require模块去引用同一个目录不同文件夹里的内容。

异常处理

在实际使用中,我们会因为失误导致路径写错,那应该怎么办呢?一般我们都会设置一个默认显示的页面,以防止这种错误的出现。

停止监听

res.end();在之后一定要写上这一句,不然浏览器会一直处于加载滚动页面。

 

附上全部代码:

Router-2.js

Router.js

实际可以看出,单独写了一个router.js,这是为什么呢?为什么不写在一起。其实这样的写法是代码看起来功能更加的具体唯一,逻辑清晰,修改时,也可以发现,我们只需要更改router.js里的代码即可。

Router-2.js的最后一行,是为了更好在控制台发现是否有报错信息。

4 总结

本文简单的讲述了如何搭建一个路由,其实看完可以发现,路由有点相似于spring里面的controller的作用,可以通过服务器的方式传一个页面给浏览器,且能够带一些数据给页面。

如本文有所不足欢迎提出,共同学习,共同进步。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值