安装方法

  1. 安装方法

简单的安装方式是直接官网下载,然后本地安装即可。官网地址:nodejs.org

Windows系统下,选择和系统版本匹配的.msi后缀的安装文件。Mac OS X系统下,选择.pkg后缀的安装文件。

  1. 测试是否安装成功

打开终端,键入命令node,如果进入命令行式js交互环境,即安装成功。如图:

我们可以直接在终端node环境下输入简短的js代码,比如正则表达式。

如果要运行一大段代码的话,可以先写一个JS文件再运行。例如有以下hello.js。

function hello() {console.log('Hello World!');
}
hello();
复制代码

写好后在终端下键入node hello.js运行,结果如下:

$ node hello.js
Hello World!
复制代码

如果需要退出node环境,可以在终端连续输入两次Ctrl+C即可。如图:

Node.js模块化理解

Node.js采用的是CommonJs规范,在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名。 在编写每个模块时,都有require、exports、module三个预先定义好的变量可供使用。

  1. require

require函数用来在一个模块中引入另外一个模块。传入一个模块名,返回一个模块导出对象。用法:let cc = require("模块名") ,其中模块名可以用绝对路径也可以用相对路径,模块的后缀名.js可以省略。例如:

let cc1 = require('./main.js')
let cc2 = require('home/src/main.js')
let cc3 = require('./main')
复制代码
  1. exports

exports对象用来导出当前模块的公共方法或属性,别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象。用法:exports.name,name为导出的对象名。例子:

exports.add = function () {let i = 0console.log(++i)
}导出一个add方法供其他模块使用
复制代码

其实exports类似于ES6中的export的用法,用来导出一个指定名字的对象。

  1. module.exports

module.exports用来导出一个默认对象,没有指定对象名,常见于修改模块的原始导出对象。比如原本模块导出的是一个对象,我们可以通过module.exports修改为导出一个函数。如下:

module.exports = function () {console.log('hello world!')
}
复制代码

其实module.exports类似于ES6中的export default的用法,用来导出一个默认的对象。

  1. 模块的初始化

一个模块中的JS代码仅在模块第一次被使用时执行一次,并且在使用的过程中进行初始化,之后缓存起来便于后续继续使用。

  1. 主模块

通过命令行参数传递给NodeJS以启动程序的模块被称为主模块。主模块负责调度组成整个程序的其它模块完成工作。例如通过以下命令启动程序时,main.js就是主模块。

$ node main.js // 运行main.js启动程序,main.js称为主模块
复制代码

完整实例:

在项目中我们有个hello.js文件,里面定义了一个求和的函数

var a = 1;function add () {return ++a;
}exports.add = add
复制代码

我们在项目的主模块 main.js中引入hello.js

var add1 = require('./hello')
var add2 = require('./hello')console.log(add1.add())
console.log(add2.add())
复制代码

该程序运行的结果如下:

$ node main.js
2
3
复制代码

我们可以看到hello.js并没有别引入两次而初始化两次,说明模块只会在执行的过程中被初始化一次。

说明

本仓库是自己Node.js学习过程的真实记录,以后会每天更新一些新的知识点,希望可以对想要学Node.js的同学有一些帮助,欢迎star,你们的点赞是我更新的持久动力。同时如果你觉得本仓库中的一些知识点有错误也可以issue我,方便后期我订正!

本仓库同时在博客园和掘金更新,欢迎写博客的朋友一起学习交流。

博客园

找我

掘金

找我

GitHub

找我

Node.js学习(第一章:Node.js安装方法及模块化理解)相关推荐

  1. 乐行学院Redis5学习教程 第一章redis5的安装

    乐行学院Redis5学习教程 第一章redis5的安装 1.安装虚拟机 2.centeros下载 3.vmware安装centeros 4.vmware安装centeros设置IP 5.安装redis ...

  2. js高级第一章--变量提升,函数提升

    js高级第一章–变量提升,函数提升 文章目录 前言 一.什么是js里的提升? 二.js变量提升 三.js函数提升 四.特殊情况 总结 前言 在js中,最基本的声明方式有三种,即:var,let,con ...

  3. JS学习笔记六:js中的DOM操作

    1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...

  4. 第一章 ArcGIS软件安装(Desktop、Server):ArcGIS10.4为例

    从0学习ArcGIS软件操作 第一章 ArcGIS软件安装(Desktop.Server):ArcGIS10.4为例 文章目录 从0学习ArcGIS软件操作 1.软件下载 2.Desktop安装 2. ...

  5. QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面

    QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面 效果截图: 创建上文件夹Designers,使用Designer设计三个UI界面: First.ui Second.ui T ...

  6. linux scons源码安装,SCons 第一章 构建并安装SCons

    第一章 构建和安装SCons ​ 本章将介绍一些安装SCons的基本步骤,本章也将介绍一些基本的python安装步骤,无论SCons还是python安装都非常简单. 1.1 安装python ​ 因为 ...

  7. 逻辑学学习:第一章:导论

    逻辑学学习:第一章:导论 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 开始学习逻辑学,教材为<<普通逻辑学>>,作者杨树森, ...

  8. 一个后端开发人员的node.js学习笔记(一)安装与第一个服务器

    2019独角兽企业重金招聘Python工程师标准>>> 1.Node.js的下载和安装 Node.js安装包及源码下载地址为:https://nodejs.org/en/downlo ...

  9. node.js学习-第一章节

    目录 前言 学习NodeJS的意义 01-nodejs入门 1.2-什么是nodejs 1.3-Node.js环境安装 1.3.1-如何确认当前电脑是否已经安装了Node环境 1.3.2-npm介绍与 ...

  10. 【Node.js】第一章 初识Node.js

    目录 1.1 浏览器中的javascript的运行环境 1.2 Node.js 简介 1.1 浏览器中的javascript的运行环境 1. 浏览器的组成部分 2.  javascript能在浏览器执 ...

最新文章

  1. 挣值管理不是搞数字游戏
  2. python语言跨平台语言吗_python属于跨平台语言吗?
  3. 通用权限管理系统组件中简易员工档案管理模块参考
  4. erp沙盘模拟软件_VOL.977 工商第九周周报 ERP沙盘模拟大赛排名第一 跨学科校企合作商讨筹备...
  5. java中多个输入框搜索_如何在一个搜索框中输入多个字段的值进行查询?
  6. mint-ui修改样式的小技巧
  7. 香蕉派,蜘蛛侠手臂和USO世界
  8. 翁恺老师C语言学习笔记(十)指针_指针与数组
  9. C# 数组练习题及答案解析
  10. Spring Boot Swagger3启动出现警告Unable to interpret the implicit parameter configuration with dataType
  11. 网页输入数据到mysql_为什么用PHP编写的网页中,输入的数据不能插入到Mysql数据库中?...
  12. Redis入门到入土教程_1
  13. 2017华为面试算法题小结
  14. 来几个有趣的Linux指令 (转自Chinaitlab)
  15. 苹果手机投屏电脑win7
  16. C++中 二维数组的定义
  17. 蓝牙协议之配对和绑定学习笔记
  18. 【英文命名】星座、奢侈品、深海物种相关英语词汇帮助你命名
  19. 产品Banner样式类型分析
  20. 【记录】嵌入式经典通信UART理解

热门文章

  1. 解决Robot Framework运行时没有Log的方案
  2. 从出生年月中获取相对准确的年龄
  3. Android webView嵌套h5页面 软键盘遮盖页面问题 解决方案 java kotlin
  4. jackson 用法总结
  5. Android--hardwareAccelerated 硬件加速详解 android:largeHeap=true
  6. MFC 简单输出EXCEL - (OLE)
  7. NSString copy or not (strong)?
  8. validationEngine中文版 — jquery强大的表单验证插件,留着以后会用得上
  9. Linux 系统启动
  10. pku 2251 Dungeon Master