1.使用zlib模块对服务器端响应压缩

//1.1引入zlib模块

const zlib=require('zlib');

//1.2 设置内容的压缩形式

'Content-Encoding': 'gzip'

//1.3创建gzip压缩

var gzip=zlib.createGzip();

//1.4使用读取流读取文件并响应到浏览器

fs.createReadStream('tmooc.html').pipe(gzip).pipe(res)

2.express

基于nodejs平台,快速、开放、极简的web开发框架

www.expressjs.com.cn 中文官网

安装express

npm  install  express

创建web服务器

const express=require('express');//引入express模块

var app=express(); //创建web服务器

app.listen(8080); //监听端口

(1)路由

浏览器向web服务器发请求,web服务器根据请求的url和请求的方法来作出响应。

三要素:请求的url,请求的方法,响应(回调函数)

res  响应的对象

send()  设置并发送响应的内容,路由中只能使用一次

sendFile()  响应文件,要求使用绝对路径  __dirname

redirect()  响应的重定向,跳转到另一个url

req  请求的对象

method  请求的方法

url   请求的url

headers   请求的头信息

query   获取请求的查询字符串形式的数据,格式为对象

params  获取路由传递的数据

设置路由中接收数据的名称

app.get('/shopping/:price', function(req,res){

req.params  //获取传递的数据,格式为对象

});

浏览器传递数据

http://127.0.0.1:8080/shopping/4999

获取post请求的数据

req.on('data', function(mydata){ //通过事件

mydata.toString()  //格式为查询字符串,需要解析为对象

});

 get和post请求

  在浏览器地址栏直接输入url,默认就是get请求,传递数据使用查询字符串,浏览记录可能被浏览器缓存。

post请求需要使用表单提交来完成(现阶段),获取数据使用事件

商品模块 product

列表   删除      修改

/product/list   /product/delete  /product/update

用户模块 user

列表    删除     修改

/user/list    /user/delete   /user/update

3.路由器

路由在使用的过程中,不同模块下的路由可能出现相同的url; 把同一个模块下的路由放到特定的路由器。

(1)创建路由器

//1.路由器是express下的一个功能

const express=require('express');

//2.创建路由器对象

var router=express.Router();

//3.往路由器中添加路由

router.get('/list',function(req,res){

res.send('这是用户列表');

});

//4.导出路由器对象

module.exports=router;

(2)在web服务器中使用

//2.1引入路由器模块

const userRouter=require('./user.js');

//2.2使用路由器,挂载到特定的url

app.use('/user',userRouter);

Node.js服务器创建和使用的更多相关文章

  1. 使用免费 mongodb数据库 + 免费node.js服务器搭建小程序接口

    由于微信的小程序只支持不带端口的域名接口,不支持IP地址和接口,所以我们需要映射到80端口并绑定备案过的域名才能被微信小程序访问到.简单点就是接口需要 https 协议才行,找了许久的免费的数据库与n ...

  2. 搭建一个简单的node.js服务器

    第一步:安装node.js.可以去官网:https://nodejs.org/en/进行下载. 查看是否成功,只需在控制台输入 node -v.出现版本号的话,就证明成功了. 第二步:编写node.j ...

  3. 本地Vue项目跨域请求本地Node.js服务器的配置方法

    前言:跨域请求是在本地开发时经常遇到的需求,也很简单,只是几句代码配置一下的问题.我初次配置跨域请求时由于官方的说明太简洁,找到的教程又落伍,调试了一番并没有解决问题,到最后解决问题,已花费了很多时间 ...

  4. node.Js学习-- 创建服务器简要步骤

    1.创建项目目录 mkdir ningha(文件夹名)npm init 初始化项目  获得package.json 2..在node.Js命令行操作进入到文件所在目录 3.输入browser-sync ...

  5. 使用Node.js简单创建一个服务器

    首先,我们要了解Node.js不是一种语言,它只是一个除了浏览器之外的,可以运行js的环境. 其次,Node能做些什么 ? web服务器.  命令行工具.   网络爬虫. 桌面应用程序开发等 3.接下 ...

  6. Node.js之创建应用

    1.使用Node.js时,不仅仅在实现一个应用,同时实现了整个HTTP服务器: 2.Node.js由下列几部分组成: (1)引入required模块:我们可以使用require指令来载入Node.js ...

  7. 建立一个node.js服务器(使用express搭建第一个Web环境)

    一.官网下载node.js 下载地址:https://nodejs.org/en/download/ 根据向导,下一步安装就可以了! 二.使用express搭建Web环境 express是一个开源的n ...

  8. 在腾讯云(windows)上搭建node.js服务器

    1:安装Node.js 使用MSI文件,并按照提示安装node.js,默认情况下,安装程序将 Node.js 发行到 C:\Program Files\nodejs. 但这里我们需要修改安装路径到:D ...

  9. Node.js:创建应用+回调函数(阻塞/非阻塞)+事件循环

    一.创建应用 如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi.从这个角度看,整个"接收 HTTP ...

随机推荐

  1. 关于flex弹性布局

    http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

  2. VHD VHDX 区别

    A Virtual hard disk is saved either with VHD or VHDX file extension. VHD is the older while VHDX is ...

  3. 怎么查看当前的git分支是基于哪个分支创建的?

    2019独角兽企业重金招聘Python工程师标准>>> Question: 比如从 branch A 切出一个 branch B 然后对branch B做了一系列的操作 然后忘记了b ...

  4. rabbitMQ消息队列原理

    MQ:Message Queue,消息队列,是一种应用程序对应用程序的通信方法:应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 1      rabbitMQ入 ...

  5. 个人博客开发系列:Vue.js + Koa.js项目中使用JWT认证

    前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). 更多的介绍和说明,以及各种原理,我在此就不多赘诉了.JWT不是一个新鲜 ...

  6. Linux下文件完整性监控工具Tripwire详解

    Tripwire 是目前最为著名的Unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来.当文件现在的数字签名与保留的数字签名不一致时,那么现在 ...

  7. MySQL分页查询的性能优化

    MySQL limit分页查询的性能优化 Mysql的分页查询十分简单,但是当数据量大的时候一般的分页就吃不消了. 传统分页查询:SELECT c1,c2,cn… FROM table LIMIT n ...

  8. Notations

    下面四种记号是为了建立函数间的相对级别. CLRS上的一张图很直观: 大O记号 定义:如果存在正常数\(c\)和\(n_0\),使得当\(N\ge n_o\)时\(T(N)\le cf(N)\),记\ ...

  9. Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

  10. JAVA基础篇 之 finalize()方法的作用

    ​ 我们知道java有垃圾回收器负责回收无用对象占据的内存资源,但也有特殊情况:假设你的对象(并非使用new)获得了一块特殊的内存区域,由于垃圾回收器只知道回收那些经由new分配的内存,所以它不知道如 ...