2021-9-23
2-1 下载和安装
- 下载 & 安装
- nodejs 和 前端 JavaScript 的区别
- server 开发和前端开发的区别
下载安装
- 普通安装
- 使用nvm
总结
- 如果要同时使用多个 node 版本,推荐使用 nvm
- 无论用哪种方式,必须安装好 node,版本要大于等于8.0
2021-9-26
2-2 nodejs和js的区别
- ECMAScript
- JavaScript
-
ECMAScript
定义了语法,写 JavaScript 和 nodejs 都必须遵守
- 包含变量定义,循环,判断,函数
- 原型和原型链,作用域和闭包、异步
- 但是:
- 不能操作 DOM ,不能监听 click 事件,不能发送 ajax 请求
- 不能处理 http 请求,不能操作文件
-
JavaScript
使用 ECMAScript 语法规范,外加 Web API(DOM操作,BOM操作,事件绑定,Ajax等),缺一不可
- 两者结合,即可完成浏览器端的任何操作
Nodejs
- 使用 ECMAScript 语法规范,外加 nodejs API,缺一不可
- 处理 http ,处理文件 nodejs.cn/api
- 两者结合,即可完成 server 端的任何操作
总结
- ECMAScript 是语法规范
- nodejs= ECMAScript + nodejs API
2-3 commonjs-演示
引入自己的方法
创建一个 commonjs-test 的目录,然后在里面创建一个 a.js 和 b.js
简单写一个加法
// a.js
function add(a,b) {
return a+b
}
module.exports = add
// b.js
const add = require('./a')
const sum = add(10,20)
console.log(sum);
然后在 terminal 中输入 node b.js
会正确输出 30
引入第三方库
const _ = require('lodash')
方法相同
nodejs中使用 commonjs 模块化
不同于前端项目中使用 ES6Module
2-4 debugger
有很多 debugger 方式
创建 debugger-test 创建入口 index.js
使用 vscode 的 debugger 打断点后即可调试
listen 3000 端口时,开启调试模式就可以正确listen
2021-9-28
2-5 debuger之inspect协议
nodejs 基于 inspect 协议的调试方法
写 debugger ,然后打开 chrome://inspect
—inspect=9229 要唯一
2-6 server 开发和前端开发的区别
server 端要承接很多很多 client 端的请求,然后去处理
- 服务稳定性
- 不能挂了,不然全部与之相关的都会挂
- 要考虑内存和 CPU (优化,扩展)
- 日志记录
- 安全
- 集群和服务拆分
服务稳定性
- server 端可能会遭受各种恶意攻击和误操作
- 单个客户端可以意外的挂掉,但是服务端不能
- PM2 可以做进程守候
- 挂了后也会自己重启
考虑 CPU 和内存(优化、扩展)
- 客户端独占一个浏览器,内存和 CPU 都不是问题
- server 端要承载很多请求,CPU 和内存都是稀缺资源
- 使用 stream 来写日志,使用 redis 存 session
日志记录
- 前端也会参与写日志,但只是日志的发起方,不关心后续
- server 端要记录日志,存储日志,分析日志,前端不关心
- 多种日志和分析方式
安全
- server 端要随时准备接收各种恶意攻击,前端则少很多
- 越权操作,数据库攻击
- 登录验证,预防 xss 攻击和 sql 注入
集群和服务拆分
- 产品发展速度快,流量可能会迅速增加
- 扩展机器和服务拆分来承载大流量
- 从设计上支持服务拆分
2-7 总结
- nodejs 下载安装,有两种方式 nvm 直接下
- nodejs和前端 js的区别,commonjs 和 debugger
- server开发和前端开发的区别,重点在于切换思路