node(二)

node常见api 用途
// .join()把用户传入的不规范路径,转化为系统可读取的规范路径 且返回结果为字符串类型
/**
  * path.parse()
  * 参数 为路径字符串
  * 作用:  将路径字符串切割并且转为路径对象  以下输出结果
  *  root: 'C:\\'  系统根目录
  *  dir: 'c:\\Users\\Administrator\\Desktop\\前端\\node\\2019-3-25fs&process&path模块','    ——> 指的文件目录  一般为项目文件目录
  *  base:'code' 当前模块文件的根目录。 
  *  ext:''  文件后缀名字
  *  name:'code'  文件名字
  * */
  • 1:const path = require('path');
  • 路径 -> 在处理路径的时候很擅长,但是,其不负责判断路径是否存在文件
  • 拼接并修正路径 path.join(__dirname,'a','b'); 以当前目录/a/b
  • path.resovle('./xxx') 相对转绝对
  • 接收一个合法的路径字符串,转换成一个对象
    • let pathObj = path.parse(mypath);
  • 接收一个路径对象,转换成一个字符串路径
    • let str = path.format(pathObj);
{ root: 'C:\\',
  dir: 'C:\\Users\\孙悟空',
  base: '金箍棒.txt',   // 该属性可以用于修改文件名和后缀
  ext: '.txt',
  name: '金箍棒' }

  • 注意:path对象是方便我们操作路径的,对于获取来讲: parse解析成对象,format转换成字符串.join拼接并修正… 对于修改路径对象来讲,可以用base属性更改,不能用name,ext更改
模块
  • 弊端
    • 在js中要涉及到逻辑,还要在html中,为逻辑对象考虑引用顺序
    • 所有对象默认都是全局对象,命名冲突
    • commonjs规范
    • 一个文件就是一个模块
      • 导入用require(‘./xxx.js’);
      • 导出用module.exports = xxx;
      • 在每一个模块内声明的变量属于模块内的作用域

fs文件模块

  • 文件读写
  • 其他功能
  • 扩展介绍
操作文件对象
  • IO

    • I :input输入
    • O:output 输出
    • 文件的操作就是IO
  • 复制文件的过程, I: 通过计算机,存储文件到剪切板

    • 粘贴到指定目录: O: 通过计算机,将剪切板上的数据,写出到 指定目录
  • node中有两种IO的操作

    • 同步IO

      • 一行代码(读文件)不执行完毕…后续代码不能执行
    • 异步IO (建议)

      • 一行代码(读写文件) 不执行完毕(正在读写中) … 后续代码也可以执行
    • 代码体验:

      • 读写文件

      • const fs = require('fs'); //必须这个名称
        //读 fs.readFile(路径,回调函数);
        //写 fs.writeFile(路径,数据,回调函数);
        
      • 总结: 异步的读/写文件 参数1:都是路径,可以相对可以绝对,最后一个参数都是回调函数,回调函数的参数中错误对象优先

  • 同步和异步IO的区别: 同步IO会阻塞后续代码执行,异步IO不会阻塞后续代码执行

nginx负载均衡
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-joLrpSQ8-1650721520213)(assets/1531408911142.png)]
包(文件夹)
  • 多个文件,有效的被组织与管理的一个单位
  • 留一个入口
npm
  • 自己先有一个包描述文件
  • 创建一个包描述文件 npm init
  • 下载一个包 npm install art-template jquery@1.5.1 --save
    • 记录依赖--save
  • 根据package.json文件中的dependencies属性恢复依赖
    • 恢复包 npm install
  • 卸载一个包 npm uninstall jquery@1.5.1 --save
  • 查看包的信息
    • npm info jquery
  • 查看包的信息中的某个字段(版本)
    • npm info jquery versions
  • 查看包的文档
    • npm docs jquery
  • 安装全局命令行工具
    • npm install -g http-server
  • 卸载全局命令行工具
    • npm uninstall -g http-server
  • 查看全局包的下载路径
    • npm root -g
nrm是npm的镜像源管理工具
  • 1:全局安装 npm install -g nrm
  • 2:查看当前可选的镜像源 nrm ls
  • 3:切换镜像源 nrm use taobao
包的加载机制
  • 我们未来可能需要辨识一个包中,入口是否是我们想要的启动程序
  • 1:查找node_modules下的包名文件夹中的main属性(常用)
  • 2:不常用:查找node_modules下的包名.js
  • 3:查找node_modules下的包名文件夹中的index.js(常用)

http核心模块


http超文本传输协议
  • 协议至少双方 -> http双方!!
  • 客户端(浏览器) -> 服务器
    • 原生应用(QQ) -> 服务器
请求与响应交互的过程
  • 见图
主体对象
  • 服务器对象
  • 客户端对象
  • 请求报文对象(对于服务器来说,是可读)
  • 响应报文对象(对于服务器来说,是可写)
创建服务器步骤
  • 1:引入http核心对象
  • 2:利用http核心对象的.createServer(callback); 创建服务器对象
  • 3:使用服务器对象.listen(端口,ip地址) 开启服务器
  • 4:callback(req,res) 根据请求处理响应
请求对象
  • 请求首行中的url req.url
  • 请求首行中的请求方式 req.method
  • 请求头中的数据req.headers 是一个对象
  • 头信息中,也可以作为与服务器交互的一种途径
获取请求体数据
  • 代码对比

  • 浏览器: $(‘#xx’).on(‘submit’,function(e){ })

  • 服务器: req.on(‘data’,function(d){ d.toString(); })

querystring核心对象
  • querystring.parse(formStr)
  • username=jack&password=123转换成如下
  • { username: ‘jack’, password: ‘123’ }
响应对象
  • 响应首行 res.writeHead(状态码)
  • 写响应头
    • 一次性写回头信息
      • res.writeHead(200,headers)
    • 多次设置头信息
      • res.setHeader(key,value);
  • 写响应体
    • 一次性写回响应体
      • res.end();
    • 多次写回响应体
      • res.write();
请求与响应
  • 头行体
  • content-type是对请求或者响应体数据,做出的说明
响应体数据
  • res.write(‘字符串’||读出文件的二进制数据)
  • res.end(‘字符串’||读出文件的二进制数)
回写页面
  • 英雄列表
  • art-template http
  • 只能是访问 get请求 url: /hero-list 才返回该数据
  • 其他请求返回ok

自己思考

  • 1:如何转化开发思路
    • 从浏览器到服务器
  • 2:node是什么
  • 3:为什么学习
  • 4:有哪些特点
  • 5:有哪些内容
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 安装Mac上的Node.js进制包可以按照以下步骤进行: 第一步,下载Node.js安装包。可以通过访问Node.js官方网站(https://nodejs.org/)下载适用于Mac的最新稳定版本。 第步,打开下载好的安装包。双击.pkg文件,启动安装向导。 第三步,按照向导的提示完成安装过程。可以在此步骤中选择安装路径和其他选项。应该将Node.js安装到默认路径中。 第四步,打开终端应用程序。终端应用程序可以在“应用程序”文件夹下的“实用工具”文件夹中找到。 第五步,检查Node.js是否已成功安装。在终端中输入以下命令: ``` node -v ``` 如果成功安装,将显示Node.js的版本号。 第六步,安装全局的npm包管理器。在终端中输入以下命令: ``` npm install npm -g ``` 这将安装最新版本的npm。 现在,您已成功在Mac上安装了Node.js进制包。您可以在终端中使用`node`命令运行JavaScript脚本,并使用`npm`命令来安装和管理各种Node.js模块和包。 ### 回答2: 要在Mac上安装Node进制包,您可以按照以下步骤进行操作: 1. 首先,打开Node.js的官方网站(https://nodejs.org),进入官方网站的下载页面。 2. 在下载页面上,您可以看到“LTS版本”和“Current版本”的选项。LTS版本是长期支持版本,建议选择这个版本进行安装。 3. 选择适用于Mac的进制包下载,根据您的操作系统版本选择正确的文件。通常,您可以选择与您的Mac操作系统位数相匹配的.pkg文件进行下载。 4. 下载完成后,双击.pkg文件进行安装。按照安装向导的指示,点击“继续”、“同意”和“安装”按钮来完成安装过程。 5. 安装完成后,您可以在“应用程序”文件夹中找到“Node.js”和“npm命令行工具”的图标。 6. 双击打开“Node.js”应用程序,确认Node.js是否正确安装。您可以通过在终端中运行以下命令来验证Node.js是否成功安装:node -v。如果成功安装,终端将显示Node.js的版本号。 7. 同样,您可以通过在终端中运行npm -v来验证npm包管理器是否正确安装。此命令将显示npm的版本号。 现在,您已经成功在Mac上安装了Node.js进制包。您可以开始使用Node.js来开发和运行JavaScript应用程序了。 ### 回答3: 要在Mac上安装Node.js进制包,可以按照以下步骤进行: 1. 首先,打开Node.js官方网站(https://nodejs.org)并下载最新的Mac进制包(.pkg文件)。 2. 安装包下载完成后,双击打开该文件,并按照安装向导的指示进行安装。在安装过程中,可能会要求输入管理员密码。 3. 安装完成后,打开终端应用程序。可以通过在“启动台”中搜索“终端”找到它。 4. 在终端中执行以下命令,验证Node.js是否已成功安装: ``` node -v ``` 如果Node.js被正确安装,应该会显示Node.js版本号。 5. 安装Node.js进制包还会自动安装Node.js包管理器npm。可以通过运行以下命令来验证npm是否已安装: ``` npm -v ``` 如果npm已安装,应该会显示npm的版本号。 恭喜!现在你在Mac上已经成功安装了Node.js进制包。你可以开始使用Node.js开发和运行JavaScript应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值