Skip to content

一、Node.js 介绍

1. 下载 & 安装

  • 普通方式
  • 使用 NVM [多版本共存]
    • nvm,nodejs 版本管理工具,可切换多个Node.js 版本
    • mac os,使用 brew install nvm
    • windows,github 中搜索 nvm-windows,有下载地址
    • 相关使用命令
      • nvm list 查看当前所有的 node 版本
      • nvm install v10.13.0 安装指定的版本
      • nvm use --delete-prefix 10.13.0 切换到指定的版本

2. nodejs 和 前端 javascript 的区别

  • ECMAScript参考链接
    • 定义了语法,写 javascript 和 nodejs 都必须遵守
    • 变量定义、循环、判断、函数
    • 原型和原型链、作用域和闭包、异步
    • 不能操作 DOM,不能监听 click 事件,不能发送 ajax 请求
    • 不能处理 http 请求,不能操作文件
    • 即,只有 ECMAScript,几乎做不了任何实际的项目
  • javascript
    • 使用 ECMAScript 语法规范,外加 Web API,缺一不可
    • DOM 操作,BOM 操作,事件绑定,Ajax 等
    • 两者结合,即可完成浏览器端的任何操作
  • nodejs
    • 使用 ECMAScript 语法规范,外加 Node.js API,缺一不可
    • 处理 http,处理文件等,具体参考链接
    • 两者结合,即可完成server的任何操作
    • 题外:
      • commonjs
        • module.exports = {}
        • require

3. server 开发和前端

  • 服务稳定性
    • server 端可能会遭受各种恶意攻击和误操作
    • 单个客户端可以意外挂掉,但是服务端不能
  • 考虑内存和CPU
    • 客户端独占一个浏览器,内存和CPU都不是问题
    • server端要承载很多请求,CPU 和 内存都是稀缺资源
    • 使用 stream 写日志,使用 redis 存 session
  • 日志记录
    • 前端也会参与写日志,但只是日志的发起方,不关心后续
    • server 端要记录日志、存储日志、分析日志、前端不关心
  • 安全
    • server 端要随时准备接受各种恶意攻击,前端则少很多
    • 如:越权操作,数据库攻击等
  • 集群和服务拆分
    • 产品发展速度快,流量可能会迅速增加
    • 如何通过扩展机器和服务拆分来承载大流量?

Released under the MIT License.