Node.js 初识

Node.js 初识

  • Node.js 是一个让 JavaScript语言运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。(JavaScript不仅仅只能在浏览器中运行了,还能在系统上运行,甚至能够开发一些项目、软件)

  • 传统服务器都是多线程的,服务器操作数据库太慢了,会IO阻塞,会导致那么多的请求线程也阻塞,会消耗服务器大量的内存资源。开发者 Ryan Dahl,起初目的就是用js去编写一个高性能的服务器来解决这个问题,2009年2月开始着手编写Node.js。

  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升,又节省了开发成本。Node.js 是单线程的,可以在不新增额外线程的情况下,依然可以对任务进行并发处理,成本更低,但单线程不能撑住访问量太大的情况,访问量太大还是用Java。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。

  • Node.js 之前叫 web.js,刚开始只想用js写一个高性能服务器,然后现在不断规模化,形成了一个生态,我们不仅仅用他做服务器,更多的是用其一些工具插件等等,于是改名为 Node.js 。Node名为节点,节点是可以扩充的,一个节点上还可以插一个节点,Ryan Dahl 希望 Node.js 能够像节点一样不断扩充功能,使其更庞大。

  • Node.js 先前不开源,开源社区制作了Node.js的分支版本io.js。2015年Node.js开源,并且和io.js合并,发布了Node.js 4.0版本,先前都是0.x版本。Node的版本奇数是开发测试版本,偶数是稳定版本。

模块化

  • 模块定义:在Node中,一个js文件就是一个模块。

  • 模块引用:通过 require() 函数来引入外部的模块,该函数会返回一个对象,这个对象代表引入的模块。

  • 模块标识:我们可以通过模块标识来找到指定的模块。模块分为两大类:第一类是核心模块,由node引擎提供的模块,核心模块的标识就是模块自己的名字var fs = require("fs");另一类是文件模块,是由用户自己创建的模块,文件模块的标识就是文件的路径。

  • 每一个js文件中的js代码都是独立运行在一个函数中,而不是全局作用域,所以,一个模块中的变量和函数在其他模块中无法访问。我们可以用exports来向外部暴露变量和方法exports.x='1'

  • 模块中的代码其实都是包装在一个函数中执行的,函数有5个实参:exports、require、module、__filename、__dirname

  • exports和module.exports的区别:

    • exports只能用点的方式向外暴露内部变量,exports.xxx=xxx
    • module.exports既可以用点的方式,还可以直接赋值方式向外暴露内部变量,module.exports.xxx=xxxmodule.exports = { xxx:xxx}

npm

  • npm(Node Package Manager):包管理系统,能够下载其他模块、上传自己写的模块、模块与模块之间定义依赖关系。

  • npm的常用命令:

    • npm -v :查看npm的版本
    • npm version:查看所有模块的版本
    • npm search 包名:搜索包
    • npm install 包名:安装包
    • npm remove 包名:删除包
    • npm install 包名 --save:安装包并添加到依赖中,别人使用你的包时会自动下载其他依赖包
    • npm install:下载当前项目所定义的所有依赖
    • npm install 包名 -g:全局安装包,一般安装的是一些工具
  • 安装淘宝cnpm镜像:

    • 安装cnpm
     npm install -g cnpm --registry=https://registry.npm.taobao.org
    
    • 使用cnpm
    cnpm install xxx
    
posted @ 2020-09-29 13:23  Baby丿太依赖  阅读(159)  评论(0)    收藏  举报