无题
node.js
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine.
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
① 浏览器是 JavaScript 的前端运行环境。
② Node.js 是 JavaScript 的后端运行环境。
③ Node.js 中无法调用 DOM 和 BOM 等
浏览器内置 API。
Node.js 可以做什么
Node.js 作为一个 JavaScript 的运行环境,仅仅提供了基础的功能和 API。然而,基于 Node.js 提供的这些基础能,很多强大
的工具和框架如雨后春笋,层出不穷,所以学会了 Node.js ,可以让前端程序员胜任更多的工作和岗位:
① 基于 Express 框架(http://www.expressjs.com.cn/),可以快速构建 Web 应用
② 基于 Electron 框架(https://electronjs.org/),可以构建跨平台的桌面应用
③ 基于 restify 框架(http://restify.com/),可以快速构建 API 接口项目
④ 读写和操作数据库、创建实用的命令行工具辅助前端开发、etc…
总之:Node.js 是大前端时代的“大宝剑”,有了 Node.js 这个超级 buff 的加持,前端程序员的行业竞争力会越来越强!
浏览器中的 JavaScript 学习路径:
JavaScript 基础语法 + 浏览器内置 API(DOM + BOM) + 第三方库(jQuery、art-template 等)
Node.js 的学习路径:
JavaScript 基础语法 + Node.js 内置 API 模块(fs、path、http等)+ 第三方 API 模块(express、mysql 等)
fs 文件系统模块
fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
例如:
⚫ fs.readFile() 方法,用来读取指定文件中的内容
⚫ fs.writeFile() 方法,用来向指定的文件中写入内容
如果要在 JavaScript 代码中,使用 fs 模块来操作文件,则需要使用如下的方式先导入它:
1 | const fs=require('fs') |
1 | // 1. 导入 fs 模块,来操作文件 |
http模块
-
http模块是Node.js 官方提供的、用来创建 web服务器的模块。通过 http模块提供的 http.createServer()方法,就能方便的把一台普通的电脑,变成一台Web服务器,从而对外提供Web资源服务。
-
服务器和普通电脑的区别在于,服务器上安装了web服务器软件,例如:IIS、Apache等。通过安装这些服务器软件,就能把一台普通的电脑变成一台web服务器。
-
在Node.js 中,我们不需要使用IIS、Apache等这些第三方web服务器软件。因为我们可以基于Node,js提供的http模块,通过几行简单的代码,就能轻松的手写一个服务器软件,从而对外提供web服务。
-
基本四步
- 导入http模块
- 创建web服务器实例
- 为服务器实例绑定request事件,监听客户端请求
- 启动服务器
导入模块
1 | ini |
创建web服务器实例
1 | ini |
为服务器绑定request事件
1 | javascript复制代码server.on('request', (req, res) => { |
启动服务器
1 | javascript复制代码server.listen(80, () => { |
模块化
npm与包
包
- 概念
- Node.js 中的第三方模块又叫做包。
- 就像电脑和计算机指的是相同的东西,第三方模块和包指的是同一个概念,只不过叫法不同。
- 来源
- 不同于Node.js 中的内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用。
- Node.js 中的包都是免费且开源的,不需要付费即可免费下载使用。
- 为什么需要包
- 由于Node.js 的内置模块仅提供了一些底层的API,导致在基于内置模块进行项目开发的时,效率很低。
- 包是基于内置模块封装出来的,提供了更高级、更方便的API,极大的提高了开发效率。
- 包和内置模块之间的关系,类似于jQuery和浏览器内置API之间的关系。
- 从哪里下载包
- 国外有一家IT公司,叫做npm, Inc.这家公司旗下有一个非常著名的网站: www.npmjs.com/,它是全球最大的包共享平台,你可以从这个网站上搜索到任何你需要的包,只要你有足够的耐心!
- npm, Inc.公司提供了一个地址为registry.npmjs.org/的服务器,来对外共享所有的包,我们可以从这个服务器上下载自己所需要的包。
- 如何下载包
- npm, Inc.公司提供了一个包管理工具,我们可以使用这个包管理工具,从registry.npmjs.org/服务器把需要的包下载到本地使用。 这个包管理工具的名字叫做Node Package Manager (简称npm包管理工具),这个包管理工具随着Node.js的安装包一起被安装到了用户的电脑上。
npm
- npm是Nodejs官方的包管理工具。
- 初次装包完成后,在项目文件夹下多一个叫做node_ modules的文件夹和package-lockjson的配置文件。
- node_modules 文件夹用来存放所有已安装到项目中的包。require()导入第三方包时,就是从这个目录中查找并加载包。
- package-lockjson 配置文件用来记录node modules目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等。
1 | csharp复制代码 |
- 上述命令只能在英文的目录下成功运行!所以,项目文件夹的名称一定要使用英文命名,不要使用中文,不能出现空格。
- 运行npm install命令安装包的时候,npm包管理工具会自动把包的名称和版本号,记录到package.json 中。
1 | javascript复制代码// packge.json |
发布包
- 新建itheima-tools文件夹,作为包的根目录
- 在itheima-tools文件夹中,新建如下三个文件:
- package.json(包管理配置文件)
- index.js(包的入口文件)
- README.md(包的说明文档)
1 | javascript复制代码// packge.json |
- 包根目录中的README.md文件,是包的使用说明文档。通过它,我们可以事先把包的使用说明,以 markdown的格式写出来,方便用户参考。
- README文件中具体写什么内容,没有强制性的要求;只要能够清晰地把包的作用、用法、注意事项等描述清楚即可。我们所创建的
- 这个包的 README.md文档中,会包含以下6项内容:
- 安装方式、导入方式、格式化时间、转义HTML中的特殊字符、还原HTML中的特殊字符、开源协议
npm发布
注册npm账号
- 访问www.npmjs.com/网站,点击 sign up按钮,进入注册用户界面
- 填写账号相关的信息:Full Name、Public Email、Username、Password
- 点击Create an Account按钮,注册账号
- 登录邮箱,点击验证链接,进行账号的验证
登录npm账号
- npm账号注册完成后,可以在终端中执行npm login命令,依次输入用户名、密码、邮箱后,即可登录成功。
- 注意:在运行npm login命令之前,必须先把下包的服务器地址切换为npm的官方服务器。否则会导致发布包失败!
1 | bash复制代码# 输入账号密码后即可成功登录 |
发布
1 | bash复制代码# 将包发布在npm上 |
- npm unpublish命令只能删除72小时以内发布的包。
- npm unpublish 删除的包,在24小时内不允许重复发布发布包的时候要慎重。
- 尽量不要往npm上发布没有意义的包!
express的使用
这里是express中文使用说明书
在使用学习时可以参考一下。