zoukankan      html  css  js  c++  java
  • 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/

    
    

     

  • 相关阅读:
    在Asp.Net头部动态加载css和js文件的方法
    关于Ajax开发中Response的ContentType的一些问题
    C#获取存储过程的返回值
    在填写表单中输入全角数字的解决方案
    Eclipse3.7中搭建Android开发环境
    THinkPHP 获取客户端IP 与IP地址查询
    php 操作数组 (合并,拆分,追加,查找,删除等)
    HTML5 LocalStorage 本地存储
    [javascript] IE与火狐下window.event对象的区别
    今天有人问是否可以使用vs2005开发,回答了一下,记录下来
  • 原文地址:https://www.cnblogs.com/sw91092/p/7565395.html
Copyright © 2011-2022 走看看