创建web服务器和TCP服务器


使用HTTP模块创建web服务器

web服务器基本知识

功能:

  • 接受HTTP请求(GET、POST、DELETE、PUT、PATCH)
  • 处理HTTP请求(自己处理,或请求别的程序处理)
  • 做出响应(返回页面、文件)

常见的Web服务器架构:

  • Nginx/Apache
  • php-fpm/php模块

常见请求种类:

  • 请求文件:包括静态文件(网页、图片、前端javascript文件)
  • 常见登录请求

node.js的web服务器:

  • 不依赖其他特定的web服务器软件
  • node.js代码处理请求的逻辑
  • node.js代码配置

创建web服务器

引用http文件:

var http=require('http');

创建web服务器:

var web=http.creatServer()

返回一个http服务器实例

需要传入一个请求的监听方法

监听方法会在被请求的时候被调用

会传递给方法两个参数

eg:

var http=require('http');var requestHandle=function(req,res){ //request-req 请求的相关信息res.end('hello'); //res 返回给用户的相关的数据//.end 表示返回的信息发送完毕
};var web=http.creatServer(requestHandle)
//需要监听一个端口
web.listen(18000);

使用Express创建web服务器

安装express模块

CMD
npm install -g express

简单的Express服务器

创建express服务器

var expresss=require('express');var app=express();//设置路由对请求进行响应
app.get('/',function(req,res){res.end('hello\n');
});app.listen(18001,function afterListen(console.log('express running on 18001')//打印监听端口
))
//监听完成后执行回调函数

express创建服务器模板

自动生成

express 文件名

静态文件服务

静态文件范围
  • 网页
  • 纯文本
  • 图片
  • 前端JavaScript代码
  • CSS样式表表文件
  • 媒体文件
  • 字体文件

创建静态文件服务器

需要使用中间件

就能使用public下的静态文件

var expresss=require('express');var app=express();//使用express的static()中间件
app.use(express.static('./public'));//静态文件目录,通常为public//设置路由对请求进行响应
app.get('/',function(req,res){res.end('hello\n');
});app.listen(18001,function afterListen(console.log('express running on 18001')//打印监听端口
))
//监听完成后执行回调函数

路由

  • 将不同的请求,分配给相应的处理函数
  • 区分:路径、请求方法
  • 可以不暴露绝对路径的文件信息

路由实现方法:

path
//设置路由对请求进行响应
app.get('/',function(req,res){res.end('hello\n');
});
Router

需要组织一组路由

var expresss=require('express');var app=express();//使用express的static()中间件
app.use(express.static('./public'));//静态文件目录,通常为public//设置路由对请求进行响应
app.get('/',function(req,res){res.end('hello\n');
});//需要组织一组路由,都在post文件下
var Rounter=express.Router();
/*
都在post文件下
http://example.com/post/add
http://example.com/post/list
*/
//配置路由
Rounter.get('/add',function(req,res)
{res.end('Router /add\n')
})
Rounter.get('/list',function(req,res)
{res.end('Router /list\n')
})
//指定基础路径post
app.use('/post',Router);
//输入网址就可以正常使用app.listen(18001,function afterListen(
console.log('express running on 18001')
//打印监听端口))//监听完成后执行回调函数
route方法
app.route('/article')
.get(function(req,res){res.end('route/article get\n');
})
.post(function(req,res){res.end('route/article post\n');
})
//可以登录http://xxx/article/post页面

路由参数

.param()

param('',function(req,res,next,newsid){//next 函数运行完毕需要运用的//newsid 路由参数req.newsid=newsid;next();
});
app.get('/news/:newsid',function(req,res){res.end('newsid:'+req.newsid+'\n');
})

中间件

connect:node.js的中间框架

分层处理

逐层实现功能


创建TCP服务器

传输层的TCP协议

如果不是主动断开,会一直保持关联

持续通信

net模块

net.creatSever()

var net=require('net');var clientHandler =function(){console.log('someone connect');socket.on('data',function dataHandler(data){console.log(socket.remoteAddress,socket.remotePort,'send',data);socket.on('close',function dataHandler(data){console.log(socket.remoteAddress,socket.remotePort,'disconnect');       })//事件名
};var app=net.creatServer(clientHandler);
//端口号和地址
app.listen('18001','127.0.0.1')

事件:

data事件

connect事件

telnet模块

TCP协议下传递的数据都是通过buffer实例存储的

服务器向客户端发送数据
socket.write(’ ');

断开连接时,socket都会被销毁

node.js(二)创建服务器相关推荐

  1. ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)

    当你在浏览器中查看网页时,其实是在向互联网上的另一台计算机发出请求,然后它会将网页提供给你作为响应.你通过互联网与之交谈的那台计算机就是Web服务器,Web服务器从客户端(例如你的浏览器)接收HTTP ...

  2. 开源 静态 文件 服务器,Node.js搭建静态服务器

    写在开头,本文是node.js最最初级的搭建静态服务器,比较适合新手入门,大神请绕道哦- Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用 ...

  3. Node.js 的Web 服务器--Fenix

    Fenix 是提供给开发人员使用的简单的一个 Web 服务器, 是基于 Node.js 开发.可以同时在上面运行很多的项目, 最适合前端开发人员使用. 可以通过免费的 Node.js 控制台创建,停止 ...

  4. Node.js基础汇总(一):什么是Node.js,创建最简单的Node.js应用,NPM介绍,安装express模块

    目录 1. 什么是Node.js? 1.1 JavaScript是什么? 1.2 Node.js 是什么? 1.3 Node.js的原理 2. 创建最简单的Node.js应用 2.1 代码示例 2.2 ...

  5. node.js从零开始搭建服务器(详细1)

    首先下载安装node.js 本文从基本开始搭建,(详细1)步骤不出错的情况下基本实现接口配置,请求传参与接收. 新建一个文件夹,命名为serve,在该文件下创建app.js子文件,此为服务器入口 内容 ...

  6. node JS 之web服务器搭建,续

    本笔者之前发表了一篇关于如何通过Node JS运行环境运行express插件实现搭建简易的web服务器的文章 原文:node JS之web服务器搭建 今天,笔者本人用了点空闲时间,把之前开发的网站服务 ...

  7. Node.js搭建https服务器

    文章目录 前言 一.下载Nginx类型证书 二.打开下载好的文件,将.pem后缀的文件修改为.crt 三.编写Node.js程序 四.把程序上传到云服务器运行 五.启动服务器,进行本地测试 总结 前言 ...

  8. node 邮箱服务器,Node.js 搭建邮件服务器

    Node.js 搭建邮件服务器 servervar smtp = require('smtp-protocol'); var server = smtp.createServer(function ( ...

  9. 微信小程序基于node.js的websocket服务器搭建和SSL证书申请、配置全家桶

    〇.前言 最近在研究微信小程序的开发,中间遇到了不少问题,趟了不少坑,这里和大家分享一下我的一些经验,希望能给大家提供一些帮助. 一.微信小程序的websocket服务器搭建 微信小程序的网络通信使用 ...

  10. 使用Node.js搭建web服务器

    前提,已有node项目 1.安装express ​ express 是一个开源的node.js项目框架,初学者使用express可以快速的搭建一个Web项目,express中已经集成了Web的http ...

最新文章

  1. dedecms发布文章提示标题不能为空怎么办
  2. HDU 4333 [SAM WRONG!!!]
  3. java人名识别_HanLP中人名识别分析(示例代码)
  4. DFS迷宫递归所有路径 新手入门
  5. 可转债数据一览表集思录_可转债股票数据一览表
  6. Hibernate EHCache - Hibernate二级缓存
  7. 怎么看笔记本电脑的配置参数_想给笔记本电脑硬件配置升级,我应该怎么升?...
  8. Spring Boot 揭秘与实战(二) 数据缓存篇 - Guava Cache
  9. 初始化和清理(垃圾回收器)
  10. 运动控制器之追剪应用Demo
  11. 关于Qt的无边框窗口移动
  12. html关闭广告代码,JS实现可点击展开与关闭的左侧广告代码
  13. SSMS 实用小技巧
  14. 7月编程排行榜新鲜出炉,再次上演神仙打架!
  15. 携创教育:2022学历改革解读系列|提升学历、迫在眉睫
  16. 华为怎么显示返回按键_你见过这台会跑的“华为手机”吗?深度体验极星Polestar 2车机系统...
  17. CPU也能速刷AlphaFold2?英特尔:请收下这份23倍通量优化指南
  18. IEEE754 浮点数的表示方法
  19. anchor free和anchor based的区别
  20. 大半夜睡不着,聊一下在小外包公司工作一年后的感想吧

热门文章

  1. Python学习三|列表、字典、元组、集合的特点以及类的一些定义
  2. 枚举基类Enum详解
  3. 序列化和反序列化(五)——敏感字段加密
  4. z-index终结者
  5. Yii 2.0 权威指南 (4) 使用 Gii 生成代码
  6. Linux下编译CMake
  7. libevent源码深度剖析-张亮
  8. MySQL 锁(行锁、表锁、页锁、乐观锁、悲观锁等)
  9. 八 理解各种不同含义的new和delete
  10. iphone电池怎么保养_手机电池不耐用怎么办啊?平时要怎么保养呢?我来告诉你...