Node.js的基础介绍

76 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天

1. 认识Node.js

Node.js是一个javascript运行环境。它让javascript可以开发后端程序,实现几乎其他后端语言实现的所有功能,可以与PHP、Java、Python、.NET、Ruby等后端语言平起平坐。

Nodejs是基于V8引擎,V8是Google发布的开源JavaScript引擎,本身就是用于Chrome浏览器的js解释部分,但是Ryan Dahl 这哥们,鬼才般的,把这个V8搬到了服务器上,用于做服务器的软件。

01 nodejs的特性
  • Nodejs语法完全是js语法,只要你懂js基础就可以学会Nodejs后端开发
  • NodeJs超强的高并发能力,实现高性能服务器
  • 开发周期短、开发成本低、学习成本低
02 使用 Node.js 需要了解多少 JavaScript

nodejs.cn/learn/how-m…

03 浏览器环境vs node环境

Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API,如:

  • 文件的读写 (File System)

    const fs = require('fs')
    ​
    fs.readFile('./ajax.png', 'utf-8', (err, content) => {
      console.log(content)
    })
    
  • 进程的管理 (Process)

    function main(argv) {
      console.log(argv)
    }
    ​
    main(process.argv.slice(2))
    ​
    
  • 网络通信 (HTTP/HTTPS)

    const http = require("http")
    ​
    http.createServer((req,res) => {
      res.writeHead(200, {
        "content-type": "text/plain"
      })
      res.write("hello nodejs")
      res.end()
    }).listen(3000)
    ​
    
2. 开发环境搭建

nodejs.cn/download/

3. 模块、包、commonJS
02 CommonJS规范
03 modules模块化规范写法

我们可以把公共的功能 抽离成为一个单独的 js 文件 作为一个模块,默认情况下面这个模块里面的方法或者属性,外面是没法访问的。如果要让外部可以访问模块里面的方法或者属性,就必须在模块里面通过 exports 或者 module.exports 暴露属性或者方法。

m1.js:

const name = 'gp19'const sayName = () => {
  console.log(name)
}
​
console.log('module 1')
​
// 接口暴露方法一:
module.exports = {
  say: sayName
}
​
// 接口暴露方法二:
exports.say = sayName
​
// 错误!
exports = {
  say: sayName
}

main.js:

const m1 = require('./m1')
m1.say()
4. Npm&Yarn
01 npm的使用
npm init
npm install 包名 –g  (uninstall,update)
npm install 包名 --save-dev (uninstall,update)
npm list -g (不加-g,列举当前目录下的安装包)
npm info 包名(详细信息) npm info 包名 version(获取最新版本)
npm install md5@1(安装指定版本)
npm outdated(  检查包是否已经过时)
​
​
    "dependencies": {    "md5": "^2.1.0"  }  ^ 表示 如果 直接npm install 将会 安md5
    2.*.*   最新版本
​
    "dependencies": {    "md5": "~2.1.0"  }  ~ 表示 如果 直接npm install 将会 安装md5 2.1.*  最新版本
​
    "dependencies": {    "md5": "*"  }  * 表示 如果 直接npm install 将会 安装 md5  最新版本
02 全局安装 nrm

NRM (npm registry manager)是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速地在 npm 源间切换。

手动切换方法: npm config set registry https://registry.npm.taobao.org

安装 nrm

在命令行执行命令,npm install -g nrm,全局安装nrm。

使用 nrm

执行命令 nrm ls 查看可选的源。 其中,带*的是当前使用的源,上面的输出表明当前源是官方源。

切换 nrm

如果要切换到taobao源,执行命令nrm use taobao。

测试速度

你还可以通过 nrm test 测试相应源的响应时间。

nrm test

扩展:

npm install -g cnpm --registry=https://registry.npmmirror.com
03 yarn使用
npm install -g yarn
对比npm:
    速度超快: Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。
    超级安全: 在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。
​
开始新项目
    yarn init 
添加依赖包
    yarn add [package] 
    yarn add [package]@[version] 
    yarn add [package] --dev 
升级依赖包
     yarn upgrade [package]@[version] 
移除依赖包
     yarn remove [package]
     
安装项目的全部依赖
     yarn install 

\