引用nodejs的url模块实现url路由功能
我们在本地创建服务器之后需要写不同的后缀名来访问同一个站点的不同页面,如果不实现路由功能。则每次访问localhost:3000 不论后面写什么 比如localhost:3000/index、localhost:3000/detail...最终都会访问同一个地址;而用url路由则可以实现访问不同的页面;在实现url路由功能之前,首先需要引入url模块;const url = require('url'); nodejs 为我们提供了url模块,并且提供了url模块的一些方法; 最终要的方法是 parse方法 。可以将url字符串转换为url对象;使用方法如下
const http = require('http');
const server = http.requireServer((req,res)=>{
let urlObj = url.parse(req.url);
});
可以在控制面板看到这个对象有一个属性名称为 pathname ;通过这个pathname 可以作为判断的依据;
实现路由的功能代码如下
'use strict';
const http = require('http');
// 引入url模块;这样可以实现真真的url路由,并且没有bug;如果
//需要使用req.url 来进行处理;req可以将req.url 进行分解;
//可以类比 parse方法 将url 转化为对象进行使用;拿到这个pathname就可以做为判断的依据,跳转到不同的页面;
const url = require('url');
const server = http.createServer((req, res) => {
// console.log(req.url);
let realUrl = 'http://' + req.headers.host + req.url;
let urlObj = url.parse(req.url);
// console.info(urlObj);
let content = '';
switch (urlObj.pathname) {
case '/': //首页
content = '<h2>首页</h2>'
break;
case '/list': //列表页
content = '<h3>列表页</h3>';
break;
case '/detail':
content = '<h4>详情页</h4>';
break;
default:
break;
}
res.writeHead(200, { "content-type": "text/html;charset:utf-8" });
res.write(content);
res.end();
})
server.listen(3000, () => {
console.log('server is run in 3000');
})
引用nodejs的url模块实现url路由功能的更多相关文章
- node(03)--利用 HTTP 模块 URl 模块 PATH 模块 FS 模块创建一个 WEB 服务器
Web 服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等 Web 客户端提供文档,也可以放置网站文件,让全世界浏览:可以放置数据文件,让全世界下载.目前最主流的三个 We ...
- nodeJS---URL相关模块用法(url和querystring)
nodeJS---URL相关模块用法(url和querystring) 一: URL模块: URL模块用于解析和处理URL的字符串,提供了如下三个方法: 1. parse 2. format 3. r ...
- nodeJS实现路由功能
前面的话 本文将使用NodeJS实现较复杂应用的路由功能 结构 项目结构如下 代码如下 功能 [router.js] // 加载所需模块 var http = require('http'); var ...
- nodejs笔记之路由及util和url模块
路由是URL到函数的映射:对于最简单的静态资源服务器,可以认为,所有URL的映射函数就是一个文件读取操作.对于动态资源,映射函数可能是一个数据库读取操作,也可能是进行一些数据的处理,等等. 如: /u ...
- nodejs之url模块
鄙人初步学习nodejs,目前在读<nodejs入门>这一本书,书很小,但是让我知道了如何用nodejs创建一个简单的小项目.例如如何创建一个服务器啦,例如http.createServe ...
- NodeJs -- URL 模块.
1. url.parse(网址): 将字符串 解析成对象. 1-1) 一个参数 : 或者 参数1, false(默认), false(默认) var url = require('url'); c ...
- nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)
请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据 前台<= http协议 =>后台 常用的请求的方式: 1.GET 数据在url ...
- 十四、 React路由(react-router4.x): 动态路由、get传值、React中使用url模块
概述 新闻列表 -跳转-> 详情页 时,想把列表对应的id传到详情页里,可用到三种传值方法: 1.动态路由传值 2.get传值 3.localstorage传值 一.动态路由传值 [App.js ...
- NodeJS 笔记 URL模块
url模块 ,包含分析和解析 URL 的工具. var url = require('url'); url.parse(urlStr[, parseQueryString][, slashesDeno ...
随机推荐
- 从零开始,开发一个 Web Office 套件(9):拖动鼠标选中文字 Edge Case
这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ...
- MySQL 导入数据时 2006-MySQLserver has gone away
MySQL 2006-MySQLserver has gone away MySQL 2006-MySQLserver has gone away 方式一(验证无误): 找到 mysql安装目录下的m ...
- synchronized 与 lock锁的异同
相同点: 二者都可以解决线程安全问题: 不同点: 1..Synchronized 是Java内置的关键字:Lock是一个Java类: 2.Synchronized 无法判断锁的状态:Lock可以判断是 ...
- MySQL—事务(ACID)
参考CSDN:https://blog.csdn.net/dengjili/article/details/82468576 1.事务四大特性 原子性(Atomicity) 要么都成功,要么都失败. ...
- 有限差分法(Finite Difference Method)解方程:边界和内部结点的控制方程
FDM解常微分方程 问题描述 \[\frac{d^2\phi}{dx^2}=S_{\phi} \tag{1} \] 这是二阶常微分方程(second-order Ordinary Differenti ...
- Mysql常用操作笔记
目录 登录 退出 Sql语句分类 DDL操作数据库 1.创建数据库 2.查看数据库 3.修改数据库 4.删除数据库 5.使用数据库 6.创建表 7.查看表 8.删除表 9.修改表 10.常用字段类型 ...
- [Lua游戏AI开发指南] 笔记零 - 框架搭建
一.图书详情 <Lua游戏AI开发指南>,原作名: Learning Game AI Programming with Lua. 豆瓣:https://book.douban.com/su ...
- error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数。。。使用
一,问题描述 MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引 ...
- mac安装git
https://blog.csdn.net/shaock2018/article/details/91127607 继续报错 rm -rf /usr/local/Homebrew/Library/Ta ...
- 简单 Linux 文件系统?
在 Linux 操作系统中,所有被操作系统管理的资源,例如网络接口卡.磁盘驱动器.打印机.输入输出设备.普通文件或是目录都被看作是一个文件.也就是说在 Linux 系统中有一个重要的概念**:一切都是 ...