node.js(二)创建服务器
创建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(二)创建服务器相关推荐
- ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)
当你在浏览器中查看网页时,其实是在向互联网上的另一台计算机发出请求,然后它会将网页提供给你作为响应.你通过互联网与之交谈的那台计算机就是Web服务器,Web服务器从客户端(例如你的浏览器)接收HTTP ...
- 开源 静态 文件 服务器,Node.js搭建静态服务器
写在开头,本文是node.js最最初级的搭建静态服务器,比较适合新手入门,大神请绕道哦- Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用 ...
- Node.js 的Web 服务器--Fenix
Fenix 是提供给开发人员使用的简单的一个 Web 服务器, 是基于 Node.js 开发.可以同时在上面运行很多的项目, 最适合前端开发人员使用. 可以通过免费的 Node.js 控制台创建,停止 ...
- 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 ...
- node.js从零开始搭建服务器(详细1)
首先下载安装node.js 本文从基本开始搭建,(详细1)步骤不出错的情况下基本实现接口配置,请求传参与接收. 新建一个文件夹,命名为serve,在该文件下创建app.js子文件,此为服务器入口 内容 ...
- node JS 之web服务器搭建,续
本笔者之前发表了一篇关于如何通过Node JS运行环境运行express插件实现搭建简易的web服务器的文章 原文:node JS之web服务器搭建 今天,笔者本人用了点空闲时间,把之前开发的网站服务 ...
- Node.js搭建https服务器
文章目录 前言 一.下载Nginx类型证书 二.打开下载好的文件,将.pem后缀的文件修改为.crt 三.编写Node.js程序 四.把程序上传到云服务器运行 五.启动服务器,进行本地测试 总结 前言 ...
- node 邮箱服务器,Node.js 搭建邮件服务器
Node.js 搭建邮件服务器 servervar smtp = require('smtp-protocol'); var server = smtp.createServer(function ( ...
- 微信小程序基于node.js的websocket服务器搭建和SSL证书申请、配置全家桶
〇.前言 最近在研究微信小程序的开发,中间遇到了不少问题,趟了不少坑,这里和大家分享一下我的一些经验,希望能给大家提供一些帮助. 一.微信小程序的websocket服务器搭建 微信小程序的网络通信使用 ...
- 使用Node.js搭建web服务器
前提,已有node项目 1.安装express express 是一个开源的node.js项目框架,初学者使用express可以快速的搭建一个Web项目,express中已经集成了Web的http ...
最新文章
- dedecms发布文章提示标题不能为空怎么办
- HDU 4333 [SAM WRONG!!!]
- java人名识别_HanLP中人名识别分析(示例代码)
- DFS迷宫递归所有路径 新手入门
- 可转债数据一览表集思录_可转债股票数据一览表
- Hibernate EHCache - Hibernate二级缓存
- 怎么看笔记本电脑的配置参数_想给笔记本电脑硬件配置升级,我应该怎么升?...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - Guava Cache
- 初始化和清理(垃圾回收器)
- 运动控制器之追剪应用Demo
- 关于Qt的无边框窗口移动
- html关闭广告代码,JS实现可点击展开与关闭的左侧广告代码
- SSMS 实用小技巧
- 7月编程排行榜新鲜出炉,再次上演神仙打架!
- 携创教育:2022学历改革解读系列|提升学历、迫在眉睫
- 华为怎么显示返回按键_你见过这台会跑的“华为手机”吗?深度体验极星Polestar 2车机系统...
- CPU也能速刷AlphaFold2?英特尔:请收下这份23倍通量优化指南
- IEEE754 浮点数的表示方法
- anchor free和anchor based的区别
- 大半夜睡不着,聊一下在小外包公司工作一年后的感想吧