nodejs第一天学习

千锋逆战班1906,杨燕第十二天打卡

nodejs
/*写后台管理程序,与之类似php,.net,java
目标:
数据服务,文件服务,we服务
优势:
性能高,方便、入门难度低,大公司都在用(BAT)
劣势
服务器提供的相对较少
相对其他语言,能用的上的学习资料少
对程序要的要求高
环境安装
官网:英文 中文 镜像
测试环境: win+r->命令行(运行->cmd)->node -v
版本:
Vx(主).x(子).x(修正)
主版本: 变化了,1/3的API发生巨变 , 使用方式变化了
子版本: API没有删减,使用方式没变化,内部实现发生了变化
修正版:什么都没变,处理一下bug
V6.8.0 稳定
V6.9.1 非稳定版 不建议下载
beta 测试
rc 、alpha测试稳定
开发工具
IDE偏重,对机器要求高,功能齐全
编辑器,轻便,速度快,功能后期补装备
运行:
window
javascript
a. 找到目标目录-》地址栏输入cmd-》node 文件名.js | node 文件名
b. 当前目录->右键->git bash-> node 文件名

苹果
终端->cd 目录-> node 文件名.js | node 文件名
vscode
新建终端->cd 目录->node 文件名.js | node 文件名
webstrom
terminal| run
开发注意
nodejs 使用的是ECMA语法,不可使用DOMBOM

web服务器
构成
- 机器: 电脑
- 数据库:mysql | sqlserver | mongoDB | oracle
- 数据库存的是: 数字|字符
- 磁盘(硬盘) 文件本身(图,视频,PDF) 文件服务器
- 管理程序:nodejs(管理前后端工程文件)

前后端交互流程
大后端
​ 用户 - > 地址栏(http[s]请求) -> web服务器(收到) - > nodejs处理请求(返回静态、动态)->请求数据库服务(返回结果)->nodejs(接收)->node渲染页面->浏览器(接收页面,完成最终渲染)
大前端
​ 用户 - > http[s]请求 -> web服务器(收到) - > nodejs处理请求(返回静态、动态)->请求数据库服务(返回结果)->nodejs(接收)->返回给前端(渲染)->浏览器(接收页面,完成最终渲染)

实现
引入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 真实域名xx.duapp.com
更新后,需要每次服务器自动重启
推荐命令行工具:supervisor nodemon
安装方式: npm install supervisor -g

http模块:
是什么?
Node.js核心模块(内部模块)
网络模块
能做什么?
创建网络服务器
发送网络请求…
ajax
浏览器
语法:
如何创建一个服务器
const http = require(“http”)
http.createServer((req,res)=>{
request:请求报文,通常来说都是由浏览器端发来的数据
response:响应报文,通常来说都是由服务器端发给浏览器的数据
res.write()
res.end()
})

//1.引入http模块
const http = require(“http”)

//2.创建http服务对象
//http.createServer(回调函数)
const app = http.createServer((req,res)=>{
console.log(“前端访问我了…”)
//后端需要设置响应头 后端设置的权重高
res.writeHead(200,{“Content-Type”:“text/html;charset=utf-8”})
//res.write(“你好!”)
res.end() //后端需要结束响应 必须要写的
})
//3.监听端口
app.listen(8000,“localhost”,()=>{
console.log(“server in running…”)
})

fs模块:磁盘操作,文件操作
是什么?
Node.js核心模块(内部模块)
文件模块
能做什么?
读写文件
处理错误
try{要排错的代码}catch(e){}
读取
fs.readFile(‘文件路径’,[编码方式],(err,data)=>{})
[^err ]: err 错误 ,null没有错误
[^data]: 数据,buffer流
变量 = fs.readFileSync(‘文件路径’)
更名
fs.rename(‘改前’,‘改后’,err=>{})
fs.renameSync(“改前”,“改后”)
fs.renameSync("./html/index.html","./html/about.html")
删除
fs.unlink() 不能用于目录。 要删除目录,则使用 fs.rmdir()
fs.unlinkSync(‘文件路径’)

api和静态资源?
api:
Application Programing Interface(应用程序接口)
php: a.php b.php 文件的形式存在
node.js: 函数的形式存在
网络服务器:电脑
接口:就是数据交换的窗口
任务逻辑
静态资源:
.html .css .js .jpg …
如果后台不去修改,那么前端请求的始终是同一个东西

url与querystring模块
都是Node.js的核心模块
url:专门处理地址的模块
url.parse()
querystring:专门处理请求字符串的模块
querystring.parse()

中国加油,武汉加油,千锋加油,我自己加油!!

你可能感兴趣的:(nodejs第一天学习)