• Node.js的有关介绍


    今天我们来简单了解一下Node.js的相关内容

    首先要了解Node.js是一个基于Chrome V8引擎的 JavaScript 运行环境;

    Node.js使用了一个简单事件驱动 非阻塞式 I/O 的模型,使其轻量又高效;

    Node.js 的包管理器npm(Node Package Manage),是全球最大的开源库生态系统。

    REPL(交互式解释器)

    REPL(Read Eval Print Loop:交互式解释器),表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应

    Node 自带了交互式解释器,可以执行以下任务:

    1读取 -- 读取用户输入内容

    2.执行 -- 执行输入的数据内容

    3.循环  -- 循环操作以上步骤 直到用户退出使用node 

    REPL 命令

    1.ctrl+c 按下一次,退出当前终端 / 按下两次,退出 Node REPL

    2.ctrl+d 退出 Node REPL

    3.tab 列出当前命令

    4.break  .clear  都表示结束表达式的缓存文件

    5.editor 开启编辑器模式

    7.exit 退出REPL

    8.help 打印帮助信息

    9.load 将文件中js加载到PEPL

    10.save 保存当前 Node REPL 会话到指定文件

    Node中的模块

     

    在Node.js中,提供了一些核心模块,其中Node.js v8.4.0 版中的模块及其作用见下表:

     

    • assert - 断言
    • Buffer - 缓冲器
    • child_process - 子进程
    • cluster - 集群
    • console - 控制台
    • crypto - 加密
    • dgram - 数据报
    • dns - 域名服务器
    • Error - 异常
    • events - 事件
    • fs - 文件系统
    • global - 全局变量
    • http - HTTP
    • https - HTTPS
    • module - 模块
    • net - 网络
    • os - 操作系统
    • path - 路径
    • process - 进程
    • querystring - 查询字符串
    • readline - 逐行读取
    • repl - 交互式解释器
    • stream - 流
    • string_decoder - 字符串解码器
    • timer - 定时器
    • tls - 安全传输层
    • tty - 终端
    • url - 网址
    • util - 实用工具
    • v8 - V8引擎
    • vm - 虚拟机
    • zlib - 压缩

    上面这些模块都属于Node的核心模块,在使用这些模块时,不需要通过npm包管理器下载,直接就可以使用:

    var http = require('http');
    在这段代码中,使用require函数来引用http模块,该函数返回http模块对象,将该对象赋值给http变量之后,
    即可通过http变量来访问http模块中的属性及方法

    var http = require('http');
    http.createServer(function (request, response){
        response.writeHead(200, {'Content-Type': 'text/plain'});
        response.end('Hello World
    ');
    }).listen(8124, '127.0.0.1');

    Node包管理器

    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

    • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
    • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
    • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

    由于新版的nodejs已经集成了npm,所以Node安装好之后,npm也一并安装好了。我们可以通过输入 “npm -v” 来测试是否成功安装。命令如下,出现版本提示表示安装成功:

    npm -v
    3.10.8
    

    如果你安装的是旧版本的 npm,可以通过 npm 命令来升级,命令如下:

    npm install npm -g
    

    使用 npm 命令安装模块

    npm 安装 Node.js 模块语法格式如下:

    npm install <Module Name>
    

    以下实例,我们使用 npm 命令安装less:

    npm install less
    

    安装好之后,less 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require(‘less’) 的方式就好,无需指定第三方包路径。

    var express = require('less');
    

    全局安装与本地安装

    npm 的包安装分为本地安装(local)、全局安装(global)两种,具体选择哪种安装方式取决于你想怎样使用这个包。如果你想将它作为命令行工具使用,比如gulp-cli,那么你可以全局安装它。如果你要把它作为自己包的依赖,你可以局部安装它。

    本地安装

    npm install less          # 本地安装
    
    1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
    2. 可以通过 require() 来引入本地安装的包。

    全局安装

    npm install less -g       # 全局安装
    
    1. 将安装包放在 /usr/local 下或者你 node 的安装目录。
    2. 可以直接在命令行里使用。

    如果你希望具备两者功能,则需要在两个地方安装它或使用 npm link。

    查看安装信息

    你可以使用以下命令来查看所有全局安装的模块:

    $ npm list -g
    
    ├─┬ cnpm@4.3.2
    ├── auto-correct@1.0.0
    ├── bagpipe@0.3.5
    ├── colors@1.1.2
    ├─┬ commander@2.9.0
    └── graceful-readlink@1.0.1
    ├─┬ cross-spawn@0.2.9
    └── lru-cache@2.7.3
    ……
    

    如果要查看某个模块的版本号,可以使用命令如下:

    $ npm list grunt
    
    projectName@projectVersion /path/to/project/folder
    └── grunt@0.4.1
    

    卸载模块

    我们可以使用以下命令来卸载 Node.js 模块。

    npm uninstall express
    

    卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:

    npm ls
    

    更新模块

    我们可以使用以下命令更新模块:

    npm update express
    

    搜索模块

    使用以下来搜索模块:

    npm search express
    

    创建模块

    创建模块,package.json 文件是必不可少的。我们可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的结果。

    $ npm init
    
    This utility will walk you through creating a package.json file.
    It only covers the most common items, and tries to guess sensible defaults.
    
    See `npm help json` for definitive documentation on these fields
    and exactly what they do.
    
    Use `npm install <pkg> --save` afterwards to install a package and
    save it as a dependency in the package.json file.
    
    Press ^C at any time to quit.
    name: (code) nodedemo
    version: (1.0.0)
    description:
    entry point: (load.js)
    test command:
    git repository:
    keywords:
    author:
    license: (ISC)
    About to write to E:html9前端9班第3阶段课程3_NodeJScodepackage.json:
    
    {
      "name": "nodedemo",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1"
      },
      "author": "",
      "license": "ISC"
    }
    
    
    Is this ok? (yes) yes
    

    以上的信息,你需要根据你自己的情况输入。在最后输入 “yes” 后会生成 package.json 文件。
    接下来我们可以使用以下命令在 npm 资源库中注册用户(使用邮箱注册):

    $ npm adduser
    Username: mcmohd
    Password:
    Email: (this IS public) mcmohd@gmail.com
    

    接下来我们就用以下命令来发布模块:

    npm publish
    

    如果你以上的步骤都操作正确,你就可以跟其他模块一样使用 npm 来安装。

    cnpm淘宝镜像

    大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟一次以保证尽量与官方服务同步。

    你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

    npm install -g cnpm --registry=https://registry.npm.taobao.org
    

    这样就可以使用 cnpm 命令来安装模块了:

    cnpm install [name]
    

    更多信息可以查阅:http://npm.taobao.org/

    
    

     

  • 相关阅读:
    线性代数思维导图——3.向量
    微分中值定理的基础题型总结
    构造函数
    Python课程笔记(七)
    0241. Different Ways to Add Parentheses (M)
    0014. Longest Common Prefix (E)
    0013. Roman to Integer (E)
    0011. Container With Most Water (M)
    0010. Regular Expression Matching (H)
    0012. Integer to Roman (M)
  • 原文地址:https://www.cnblogs.com/sw91092/p/7565395.html
Copyright © 2020-2023  润新知