Nodejs入门篇(一)

nodejs介绍

nodejs是一个后台管理的程序,类似于php .net java 。

环境安装

英文版 中文版 镜像

版本

  • Vx(主).x(子).x(修正)
    主版本: 变化了,1/3的API发生巨变 , 使用方式变化了
    子版本: API没有删减,使用方式没变化,内部实现发生了变化
    修正版:什么都没变,处理一下bug
    V6.8.0 稳定
    V6.9.1 非稳定版 不建议下载
    beta 测试
    rc 、alpha测试稳定

运行

window
  • 找到目标目录-》地址栏输入cmd-》node 文件名.js | node 文件名

  • 当前目录->右键->git bash-> node 文件名

苹果
  • 终端->cd 目录-> node 文件名.js | node 文件名
vscode
  • 新建终端->cd 目录->node 文件名.js | node 文件名
webstrom
  • terminal| run

注意

  • nodejs 使用的是ECMA语法,不可使用DOMBOM

实现

引入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

fs模块

磁盘操作,文件操作

读取

  • fs.readFile(‘文件路径’,[编码方式],(err,data)=>{})

  • err : err 错误 ,null没有错误
    data: 数据,buffer流

  • 变量 = fs.readFileSync(‘文件路径’)

处理错误

  • try{要排错的代码}catch(e){}

更名

  • fs.renameSync(‘修改前’,‘修改后’);

删除

  • fs.unlinkSync(‘文件路径’) 同步,不可删除目录
  • fs.unlinkSync(‘文件路径’) 异步,不可删除目录
  • fs.rmdir(‘文件路径’,回调函数) 可删除目录

静态资源托管

后端资源读取

  • fs.readFile(文件名,[编码方式],回调(err,data));

接口实现

前端

表单:get/post/put/delete/…

js: ajax/jsonp

后端

处理方式:http[s]

req.url 抓取 get请求的数据 切字符 | url模块

req.on('data',(chunk)=>{CHUNK==每次收到的数据buffer})

req.on('end',()=>{ 接收完毕 切字符 querystring })

postman 一个不用写前端,就可以发出各种请求的软件 ,安装包提取地址
链接:https://pan.baidu.com/s/1UmeUhduxGLrWrQMWOv_pog
提取码:27ml

url模块

作用

处理 url型的字符串

用法

url.parse(str,true) 返回 对象 true表示把query处理为对象

str -> obj 返回 对象 true
protocol: ‘http:’, 协议
slashes: true, 双斜杠
auth: null, 作者
host: ‘localhost:8002’, 主机
port: ‘8002’, 端口
hostname: ‘localhost’, baidu
hash: ‘#title’, 哈希(锚)
search: ‘?username=sdfsdf&content=234234’, 查询字符串
query: ‘username=sdfsdf&content=234234’, 数据
pathname: ‘/aaa’, 文件路径
path: ‘/aaa?username=sdfsdf&content=234234’, 文件路径
href: ‘http://localhost:8002/aaa?username=sdfsdf&content=234234#title’

url.format(obj) 返回字符

querystring 模块

作用

处理查询字符串 如:?key=value&key2=value2

用法

  • querystring.parse(str) 返回对象

  • querystring.stringify(obj) 返回字符串

家中逆战,无畏疫情,武汉加油,中国加油,人类必胜!!!

发布了11 篇原创文章 · 获赞 3 · 访问量 287

猜你喜欢

转载自blog.csdn.net/qq_43942185/article/details/104762762