Node.js基础入门之使用方式及模块化详解

目录
  • 什么是Node.js ?
  • Node.js下载
  • Node.js和JavaScript的区别
  • Node.js安装与验证
  • Node.js使用方式
    • 1. REPL模式
    • 2. 文件模式
  • Node.js模块化
    • 1. 什么是模块?
    • 2. 模块分类
    • 3. 创建自定义模块
    • 4. 调用自定义模块
    • 5. 模块测试
    • 6. 主模块
    • 7. 模块组成

在这个竞争日益激烈的今天,已经不是一门语言,一项技术走天下的时代了。正所谓艺多不压身,今天开始学习Node.js,学而时习之,不亦乐乎,希望可以借鉴经验,学以致用,如有不足之处,还请指正。

什么是Node.js ?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。类似于Java中的JRE,.Net中的CLR。在Node.js诞生之前,JavaScript做为Web前端脚本语言,一直占据者前端开发的王者地位,浏览器之所以能够解析JavaScript,是基于浏览器引擎来实现的。后来有人【Ryan Dahl】突发奇想,将google浏览器的V8引擎从浏览器中剥离出来,并加以完善,使得JavaScript编写的程序也可以脱离浏览器,做为服务器端来运行,于是Node.js应运而生。这一消息让众多JavaScript的爱好者,看到了希望的曙光,于是纷纷加入Node.js的开源生态建设当中。目前基于Node.js的各种框架,组件库等层出不穷,颇受大家喜爱,Node.js也呈现一片欣欣向荣的景象。

Node.js下载

Node.js使用事件驱动,非阻塞式I/O模型,即轻量又高效。Node.js的包管理器NPM,是目前全球最大的开源库生态系统。Node.js可通过Node.js中文官网【http://nodejs.cn/】进行下载【最新版本:v16.14.0】,如下所示:

Node.js不仅支持Windows,也支持Linux,MacOS,跨平台支持各种环境。在Windows下,直接下载64位的安装包即可,如下所示:

Node.js和JavaScript的区别

刚开始学习时,往往分不清Node.js和JavaScript的区别,通过学习并加以整理,两者的区别如下:

Node.js是一个基于Chrome V8引擎的可以运行JavaScript程序的环境,并且对JavaScript语言进行了增强【文件,网络,操作系统,数据库等】,使得JavaScript语言具有服务器端程序的开发能力。

JavaScript是一门编程语言,只要有JavaScript引擎就可以运行,各个浏览器都有各自的浏览器引擎。并且如果JavaScript运行与浏览器中,浏览器对JavaScript加入了BOM和DOM操作的接口方法。

Node.js安装与验证

Node.js安装比较简单,采用默认即可,当安装成功后,在命令行窗口通过node -v可以查看版本号,如下所示:

注意:因为安装时,默认已将Node.js加入环境变量,所以可以直接使用node.js的命令。

Node.js使用方式

Node.js使用方式有两种:

  • REPL模式,直接在命令行,执行JavaScript语句。
  • 文件模式,即业务逻辑写在JS文件中,通过node 文件名称进行执行。

1. REPL模式

REPL【Read-Evaluate-Print-Loop】模式,即输入-求值-输出-循环,即交互式命令行解析器模式。启动REPL模式,在命令行输入node即可进入node.js环境,然后执行JavaScript语句,如下所示:

注意:REPL模式,只适用于简单的语句,不能应用到复杂的业务逻辑。退出REPL模式,按Ctrl+C两次即可。

2. 文件模式

首先创建js文件,如下所示:

var username="Alan.hsiang";
console.log("我是 "+username);

首先将目录切换到js文件所在的目录,然后在命令行,通过【node 文件名称】的方式即可执行,如下所示:

Node.js模块化

Node.js采用CommonJS模块化规范,所以基于Node.js开发的程序,也需要遵循CommonJS模块化规范。

1. 什么是模块?

在Node.js中,所有的功能都是以模块的形式存在的。每一个具有特定功能的js文件,就是一个模块;所有用户编写的代码,都会自动的封装在模块中。模块之间可能会存在一定的依赖关系,使用模块可以很好的把这些依赖关系整合起来。

2. 模块分类

在Node.js中,模块分为两类:

  • 系统模块,系统提供的,可以直接使用的模块。
  • 自定义模块,用户编写的,具有特定功能的模块。

3. 创建自定义模块

创建一个js文件,代码如下:

 var username="小六公子";
 function sayHi(){
     console.log("hi,小六子");
 }
 exports.username=username;
 exports.sayHi=sayHi;

注意:在javascript中,通过exports暴露对象给调用者。通过require来引用其他模块。

4. 调用自定义模块

调用自定义模块,通过require("./文件名.js")实现,如下所示:

 var obj =require("./demo01-1.js");
 console.log(obj);
 console.log(obj.username);
 console.log(obj.sayHi());

注意:require函数返回的是一个对象,通过对象调用自定义模块公开的属性和函数。

5. 模块测试

在Node.js中执行,输出结果如下所示

6. 主模块

在Node.js中,模块的入口称之为主模块,负责统筹调度程序组成的其他模块完成指定的功能。一个项目只能有一个主模块,默认情况下,通过package.json中的main属性进行声明,一般为main.js或者 index.js。类似于.Net中的Progrom.cs的Main方法或者网站的首页。

7. 模块组成

在Node.js中,所有用户编写的代码都包含在模块中,模块就是文件(函数)。可以通过函数的内置参数arguments来查看。如下所示:

 console.log(arguments);

argments是一个内置对象,包含五个子对象。具体输出结果如下:

可以通过arguments.calle查看函数体本身。如下所示:

console.log(arguments.callee.toString());

Node.js在封装模块时,传递了五个参数,分别如下:

  • exports:暴露对象,通过将模块中的数据暴露给引入的地方。
  • require:引入模块函数,用于在一个模块中引入另外一个模块,并且将子模块暴露的数据赋值给变量。
  • module:模块对象,包含当前模块的所有信息。
  • __filename:当前模块的文件名
  • __dirname:当前模块所在的目录路径

输出结果如下所示:

注意:通过以上可以看出,之所以在程序中可以使用require,exports,就是因为Node.js在封装对象时,默认传递了此参数。

以上就是Node.js基础入门之使用方式及模块化详解的详细内容,更多关于Node.js 使用方式 模块化的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解Node.js中的模块化方法

    目录 一.模块化的基本概念 1.什么是模块化 2.模块化规范 二.Node.js 中的模块化 1.Node.js 中的模块化分类 2.加载模块 3.向外共享模块作用域中的成员 4.Node.js 中的模块化规范 (1)什么是CommonJS模块规范 (2)CommonJS 模块化规范 (3)每个导出的模块都有一个moudle对象,该对象包含的属性有: 三.npm 与 包 1.包的概念 2.包的安装与卸载 3.包管理配置文件 总结 一.模块化的基本概念 1.什么是模块化 模块化是指解决一个复杂问题

  • Node.js中的模块化,npm包管理器详解

    目录 模块化的基本概念 什么是模块化 模块化拆分的好处 Node.js中的模块化 Node.js中模块的分类 加载模块 模块作用域 向外共享模块作用域中的成员 module对象 exports对象 npm与包 包 如何下载包 在项目中安装包的命令 解决下包速度慢的问题 为什么下包速度慢 解决方法一--淘宝NPM镜像服务器 解决方法二--切换npm的下包镜像源 解决方法三--nrm 总结 模块化的基本概念 什么是模块化 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程.对于整个

  • node.js学习之交互式解释器REPL详解

    简介 repl是Node.js提供的一个Read-Eval-Print-Loop (REPL,读取-执行-输出-循环)实现,它即可以做为一个独立的程序使用,又可以包含在其它应用中使用.REPL是一个互式命令行解析器,它提供了一个交互式的编程环境,它可以实时的验证你所编写的代码,非常适合于验证Node.js和JavaScript的相关API. Node 自带了交互式解释器,可以执行以下任务: 读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中. 执行 - 执行输入的数据

  • Node.js的模块化机制和Buffer对象详解

    目录 一.Node.js的模块化机制 1.什么是CommonJS模块规范 2.CommonJS模块规范化的内容 3.每个导出的模块都有一个moudle对象,该对象包含的属性有: 4.使用require导入模块 二.Buffer对象 1.用来弥补JavaScript在二进制数据处理上不足. 2.Buffer是一个构造函数 3.Buffer的基本操作: 4.Buffer类: 总结 一.Node.js的模块化机制 Node应用是由模块组成的,Node遵循了CommonJS的模块规范,来隔离每个模块的作

  • Node.js REPL (交互式解释器)实例详解

    Node.js  REPL (交互式解释器)实例详解 Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端,我们可以在终端中输入命令,并接收系统的响应. Node 自带了交互式解释器,可以执行以下任务: 读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中. 执行 - 执行输入的数据结构 打印 - 输出结果 循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出. 多行表达式

  • Node.js API详解之 repl模块用法实例分析

    本文实例讲述了Node.js API详解之 repl模块用法.分享给大家供大家参考,具体如下: Node.js API详解之 repl repl(交互式解释器) 模块提供了一种"读取-求值-输出"循环(REPL)的实现,它可作为一个独立的程序或嵌入到其他应用中. 可以通过以下方式使用它: const repl = require('repl'); Node.js 自身也使用 repl 模块为执行 JavaScript 代码提供交互接口. 可以通过不带任何参数(或使用 -i 参数)地执行

  • Node.js基础入门之使用方式及模块化详解

    目录 什么是Node.js ? Node.js下载 Node.js和JavaScript的区别 Node.js安装与验证 Node.js使用方式 1. REPL模式 2. 文件模式 Node.js模块化 1. 什么是模块? 2. 模块分类 3. 创建自定义模块 4. 调用自定义模块 5. 模块测试 6. 主模块 7. 模块组成 在这个竞争日益激烈的今天,已经不是一门语言,一项技术走天下的时代了.正所谓艺多不压身,今天开始学习Node.js,学而时习之,不亦乐乎,希望可以借鉴经验,学以致用,如有不

  • Node.js基础入门之模块与npm包管理器使用详解

    目录 require函数 模块分类 第三方模块 1. 安装第三方模块 2. 引入第三方模块 3. 示例测试 系统模块 require注意事项 exports导出对象 1. exports示例 2. exports注意事项 module模块对象 package.json包描述文件 1. 什么是package.json ? 2. 如何创建package.json文件? NPM基础 1. 常用npm命令 2. npm 示例 cnpm基础 1. 什么是cnpm ? 2. 使用cnpm 控制台输出 1.

  • Node.js基础入门之path模块,url模块,http模块使用详解

    目录 path模块 1. path模块示例 2. path模块其他方法 url模块 1. 旧的解析方法 2. 新的解析方法 http模块 1. 什么是HTTP协议? 2. HTTP协议约束的细节 3. HTTP请求响应过程 4. http模块get方法 经过前面四天的学习,对Node.js已经有了一个基础的认识,今天继续学习Node.js网络通信编程相关内容,并稍加整理加以分享,如有不足之处,还请指正. path模块 Node.js中,提供了一个path模块,在这个模块中,提供了许多实用的,可被

  • Node.js基础入门之回调函数及异步与同步详解

    目录 回调函数 1. 什么是回调函数? 2. 回调函数实现机制 3. 回调函数用途 4. 回调函数示例 异步与同步 1. 什么是异步与同步? 2. 同步示例 3. 异步示例一 4. 异步示例二 异步的实现 1. 回调函数的同步示例 2. 异步事件示例 3. 异步示例截图 Promise基础 1. 什么是Promise ? 2. Promise特点 3. 异步的缺点 4. Promise保证异步顺序 经过前面两天的学习,已经对Node.js有了一个初步的认识,今天继续学习其他内容,并加以整理分享,

  • Node.js基础入门之缓存区与文件操作详解

    目录 缓存区 1. 什么是缓存区? 2. 创建指定长度的缓存区 3. 通过数组创建缓存区 4. 通过字符串创建缓存区 5. 读写缓存区 6. 复制缓存区 文件操作 1. 异步直接读取 2. 同步直接读取 3. 流式读取 4. 写入文件 5. 流式写入文件 6. 读取文件信息 7. 删除文件 8. 管道 9. 链式流 经过前面三天的学习,Node.js的基础知识已逐渐掌握,今天继续学习缓存区和文件操作,并稍加整理加以分享,如有不足之处,还请指正. 缓存区 1. 什么是缓存区? JavaScript

  • Linux使用Node.js建立访问静态网页的服务实例详解

    Linux使用Node.js建立访问静态网页的服务实例详解 一.安装node.js运行所需要的环境,:http://www.jb51.net/article/79536.htm 二.创建node目录(/node/www),并在目录下创建node.js服务文件server.js var http = require('http'); var fs = require('fs');//引入文件读取模块 var documentRoot = '/node/www';//需要访问的文件的存放目录 var

  • Django零基础入门之路由path和re_path详解

    目录 urls.py文件中的path和re_path 1.path的基本规则: 2.默认支持的转换器有: 3.re_path正则匹配: Django中实战使用path和re_path 1.urls.py文件: 2.views.py视图函数文件: 3.效果: 假设现在有个需求:   需要通过URL进行参数传递,我们该怎么做呢?     其中有个方法就是本文要讲的内容--path和进阶版的re_path. urls.py文件中的path和re_path 1.path的基本规则: path('test

  • node.js根据不同请求路径返回不同数据详解流程

    目录 1.学习根据不同的请求路径返回:不同数据 2.发送的数据:数据类型,和什么编码:Content-Type 3.关于读入文件的:相对路径和绝对路径: 4.读图片 1.学习根据不同的请求路径返回:不同数据 var url=req.url //获取req.url值(req:是request简写) req.url: 获取的是端口号之后的路径 实现不同路径返回不同数据 我的端口号:3000,网址:http://127.0.0.1:3000 if(url==='/'){ res.end('index

  • node.js使用express框架进行文件上传详解

    关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究. 目前的研究算是取得的比较好的进展. Settings-Sync中通过快捷键上传文件,其实主要还是请求后端接口. 于是我便使用node.js模拟一个服务,这个服务其实就相当于github api(Settings-Sync实际请求的接口,比如token验证,gist存储创建等都是来自github 对应的api). 话不多说,直接代码贴起讲解: 1.创建一个node.js项目(这里我以ex

  • Node.js学习之地址解析模块URL的使用详解

    前言 本文主要给大家介绍了关于Node.js地址解析模块URL使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. url结构化/模块化/路径解析 结构化:url.parse(urlString[, parseQueryString[, slashesDenoteHost]]) 模块化:url.format(urlObject) 路径解析:url.resolve(from, to) 一个URL字符串是一个结构化的字符串包含多个有意义的组件.在解析时,返回一个URL对象

随机推荐