nodejs 是什么
- 一个基于 Chrome V8 引擎的 Javascript 运行时
- 2009 年发布,现已更新到 V12 版本
- 现已广泛应用于开源社区和各种公司,特别是互联网公司
chrome V8 引擎
- chrome 是一个浏览器,它可以执行 js 代码
- V8 就是 chrome 的 js 引擎,以速度著称
- nodejs 也是基于 js 语法的,因此也可以借用 V8 引擎
运行时
- 代码的运行环境
- 有了运行时,代码才能被执行
- 没有运行时,代码就是一堆静态的文本,就像 txt 一样
nodejs 的价值
- 让 js “放飞自我”,不再是网页的一部分
- 让 js 可以做更多的事情
- 也让前端工程师可以做更多的事情
如何用 nodejs 做服务端
- 安装 nodejs
- 编写 js 代码(处理 http 请求)
- 使用 nodejs 执行 js 代码
总结
- nodejs 是一个基于 Chrome V8 引擎的 js 运行时
- nodejs 使得 js 语言能做更多的事情,而不仅仅是网页
- 安装 nodejs ,即可执行 js 代码
npm 是什么
- node package manager,即 nodejs 软件包管理者
- 官网 https://www.npmjs.com/
- 有几百万的软件包,开源免费
软件包有何用
- 现代软件工程已经完善且成熟,项目不会从 0 开始写
- 必须搭配成熟的工具和框架才能满足需求,否则将无人使用
- 每个成熟的开发语言或者环境,都需要成熟的软件包体系。
开始使用 npm
- npm 会随着 nodejs 一起被安装
- npm init 初始化环境
- npm install lodash --save 安装 lodash
lodash
- Javascript 实用程序库
nodemon
- 启动 nodejs 程序
commonjs 语法介绍
- module.exports
- require(…)
- 主要用于 nodejs 开发
require(…) 的三个层级
- 系统自带模块, 如 require(‘http’)
- npm 包,如 require(‘lodash’)
- 自定义模块,如 require(‘a’)
commonjs 和 ES6 Module 的区别
- 两者语法不一样
- commonjs 是执行时引入,动态的
- ES6 Module 是打包时引入,静态的
为何使用模块化
- 模块拆分开,便于代码的组织和管理
- 便于多人协作开发,各写各的互不干扰
- 成熟的语言,都支持模块话,如 C C++ java php python Go
nodejs debug
什么是 debug
- bug 即错误
- debug 即排错,也叫调试
- 编程语言,必须有成熟的debug机制,否则将不可用
debug 的重要性
- 程序出 bug 很常见,因此 debug 也很常用
- 出了 bug,得需要知道代码是如何运行出错的
- 就像一台机器异响,得拆开外壳看看里面如何运转的
inspect 调试法
- 修改 scripts,增加 --inspect,启动服务
- 打开 chrome,访问 chrome://inspect
- 增加 debugger,重启服务,即可调试
nodejs 和 前端 js 区别
- 两者都使用 js 语法
- 前端 js 使用 浏览器提供的 Web API
- nodejs 使用 nodejs API