web服务器
web服务器构成
- 机器: 电脑(服务器)
- 数据库:mysql | sqlserver | mongoDB | oracle
- 数据库存的是: 数字|字符
- 磁盘(硬盘) 文件本身(图,视频,PDF) 文件服务器
- 管理程序:nodejs(管理前后端工程文件)
前后端交互流程
大后端(数据渲染到页面由后端渲染)
用户 -》 地址栏(http[s]请求) -》 web服务器(收到) -》 nodejs处理请求(返回静态、动态)-》请求数据库服务(返回结果)-》nodejs(接收)-》node渲染页面(后端渲染页面一般用来做管理页面)-》浏览器(接收页面,完成最终渲染)
大前端(数据渲染到页面由前端渲染)
用户 -》 http[s]请求 -》 web服务器(收到) -》 nodejs处理请求(返回静态、动态)-》请求数据库服务(返回结果)-》nodejs(接收)-》返回给前端渲染(前段渲染页面一般用来做客户端页面)-》浏览器(接收页面,完成最终渲染)
搭建web服务器
一、引入http模块
let http = require('http')
二、创建web服务 返回http对象
let app = http.createServer((req,res)=>{})
req:请求体 浏览器-》服务器
req.url 地址 提取地址栏数据
req.on(‘data’) 提取非地址栏数据 所有的http[s]都会触发end事件
req.on(‘end’)
res:响应体 服务器-》浏览器
res.writeHead(200,{‘Content-Type’:‘text/html;charset=utf-8’}); //响应头设置
res.write(字符/数据) //返回数据
res.end() //结束响应 (必须)
三、监听服务器
app.listen(端口,[地址],[回调]) //使用"[]"包起来的表示参数为可选参数
监听成功,回调一次
端口: 1-65535 1024以下系统占用
虚拟地址localhost 当有了真实域名地址xxx.clay.com
设置代码更新后,每次请求服务器自动重启
推荐命令行工具:
supervisor
|nodemon
安装方式:
npm install supervisor | nodemon -g
,安装完后,再运行时就不需要再使用node来运行了,而是使用supervisor + 文件名.js | nodemon + 文件名.js