code-lessions

0.0.1 • Public • Published

Node.js 第四天课程笔记

反馈

  • 同步和异步的 区别,同步和异步如何处理异常
    • 异步编程中如何封装异步函数
  • __dirname__filename
    • 在每个文件模块当中都有两个属性叫做:__dirname 和 __filename
    • __dirname 表示获取当前文件模块所属目录的绝对路径
    • __filename 表示获取当前文件模块自身的绝对路径
  • buffer 的应用
    • 什么是字符集编码
    • 编码和字符串之间的关系
    • 如何处理二进制数据和字符之间的转换
  • 模块标识和静态资源路径拼接的问题
  • Python 课程和 Node 的区别
    • Linux
    • Node 希望大家以后都可以成为全栈开发工程师

文件操作

需求:筛选出所有的 .js 文件之后,将所有的 .js 文件合并为一个文件

监视文件

有的时候,我们需要在动态的改变了某些文件的时候,让程序帮我做一些事情。 例如:利用某些工具可以在编辑css文件代码的时候,就可以实时的刷新浏览器中的页面。 减少手动的操作。

监视文件的变化,当文件发生变化的时候,做一些自己定义的业务逻辑操作。

  • Markdown文件转换器

文件流

  • 大文件拷贝进度条

包和npm

require 加载规则

包加载规则

包描述文件

npm常用命令

Node package management npm 一层含义就是一个查询包的网站,而该网站中放置的都是 基于 Node.js 写的包 npm网站

这个网站的作用就是用来查询一些包或者该报的一些信息的。

npm 还有第二层含义:它是一个Node包终端下的管理工具 有一些列的命令可以用来让我们快速的进行操作

npm 包管理工具本身也是基于 Node.js 编写, 它已经在安装 Node.js 的时候安装到了你的操作系统当中了。

如何验证 npm 是否安装成功? 在 控制台中 输入 npm -v 敲回车 如果看到一个版本号,就说明没有问题

如果想要在当前项目中使用 第三方包,就可以通过 npm 工具来帮我们进行下载安装

例如:你想要在当前项目中使用一个叫做 Markdown 的一个第三方包, 那么就可以在当前项目的根路径下 输入 npm install markdown 敲回车等待安装成功即可 安装的过程必须联网

当安装成功之后,node 会自动帮你在当前项目的根路径下创建一个目录叫做:node_modules

然后把第三方包自动放到了该目录下

对于这个目录来说,就是专门用来放置第三方包的,千万不要手动修改, node_modules 目录名称不要修改,里面的内容也不要修改。

  • npm init
  • npm install 包名
  • npm uninstall 包名
  • npm install --save 包名
  • npm uninstall --save 包名
  • npm install -g 包名
  • npm uninstall -g 包名
  • npm docs 包名
  • npm list
  • npm list -g
  • npm update 包名
  • npm update -g 包名
  • npm update
  • npm update -g

解决npm被墙问题

cnpm

nrm

网络编程

我们处于互联网时代,我们可以随时随地通过 Internet 上网、浏览新闻、玩LOL、上淘宝购物等等。 这些过程都发生了网络数据的交互。树莓派

简单来说:比如你正在手机上浏览网易新闻,对汪峰上头条很感兴趣,点击该链接后,就会进入新闻, 那么就会发生一件事:发出请求给网易服务器(告诉网易服务器我要查看汪峰上头条这条新闻), 服务器解析你的请求,返回汪峰头条新闻的具体内容。这个过程发生了数据的交换, 也就是请求数据传输给了网易服务器,网易服务器又返回响应数据给客户端。

所以,网络编程 是指编写程序使两台联网的计算机可以完成网络数据交互,完成网络通信。 注意:这里的计算机泛指可以上网的设备,比如PC、手机、服务器、智能电视等等。

强调:网络编程重在思想,node只是一个可以帮助我们学习网络编程的一个工具而已。 使用其他编程语言或者操作系统进行网络编程,思想都是一样的。

为什么叫 Node

Node是一个面向网络而生的平台。

Ryan Dahl 在创建Node项目的时候给它起了一个名字叫做 web.js ,就是一个Web服务器。 类似于 Apache、tomcat、IIS 等服务器软件。

web.js 的发展超出了作者的最初想法,变成了构建网络应用的一个基础平台。 然后就可以在这个基础平台之上构建很多东西,比如服务器、客户端、各种各样的命令行工具等。

Node的目标就是成为一个构建快速、可伸缩的网络应用平台。

每一个Node进程构成网络应用中的一个节点。这就是 Node 的含义。

Node 没有 Web 容器

.net平台的 ASP或者ASP.net 需要 IIS 作为服务器容器, PHP需要搭载 Apache 或者 Nginx 作为服务器容器, Java 的 JSP 需要 tomcat 作为服务器容器, ruby 的 ruby on rails 需要 搭配 Apache 等作为自己的服务器容器。。。

Node,不需要服务器容器。 Node,不需要服务器容器。 Node,不需要服务器容器。

服务器端相关 API

  • close 服务器关闭事件
  • connection 有客户端连接的事件
  • error 服务器端错误事件
  • listening 服务器开启监听成功事件
  • server.address() 获取服务器监听的ip地址和端口号
  • server.close([callback]) 关闭服务器连接
  • server.getConnections(callback(err, count)) 异步获取当前服务器并发连接数
  • server.listen(port[, hostname][, backlog][, callback]) 开启监听
  • server.maxConnections 设置最大连接数

net.Socket

  • close 客户端关闭事件
  • data 当收到数据的时候会触发该回调函数,参数data是buffer,如果设置了socket.setEncoding()则是字符串
  • connect 客户端连接服务器成功事件

Readme

Keywords

none

Package Sidebar

Install

npm i code-lessions

Weekly Downloads

1

Version

0.0.1

License

ISC

Last publish

Collaborators

  • weixiaoxiao