博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodeJS基础:模块系统
阅读量:6452 次
发布时间:2019-06-23

本文共 1550 字,大约阅读时间需要 5 分钟。

1. node JS 模块介绍

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。

模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。

2. 创建模块

Node.js 提供了exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。 

实例:备注,在以下实例中 main.js 与 hello.js 都是处于同一文件夹下

// main.js// 1. require('./hello') 引入了当前目录下的hello.js文件(./ 为当前目录,node.js默认后缀为js)。var hello = require("./hello");//2. 使用模块hello.hello("gaoxiong")
// hello.js// 写法1module.exports.hello = function(name){    console.log(name);};// 写法2exports.hello = function(name){    console.log(name);}// 写法1,2都是可以的

在终端执行:node main.js 会打印 gaoxiong,不知道你有没有留意上面,在调用模块方法时时通过 hello.hello(params);这是为什么呢?我们在hello.js中 暴露出的不是一个函数吗?错了!!!实际上这就牵扯到了以下暴露方法的区别

  • exports:只能暴露出一个对象,不管你暴露出什么,它返回的总是一个对象,对象中包含你所要暴露的信息
  • module.exports能暴露出任意数据类型

验证:

//第一种情况 // main.jsvar hello = require("./hello");console.log(hello);// hello.jsexports.string = "fdfffd";conosle.log 结果: { string: 'fdfffd' }
// main.jsvar hello = require("./hello");console.log(hello);// hello.jsmodule.exports.string = "fdfffd";// console.log()结果{ string: 'fdfffd'}
// main.jsvar hello = require("./hello");console.log(hello);// hello.jsmodule.exports = "fdfffd";//conosle.log() 结果fdfffd
// main.jsvar hello = require("./hello");console.log(hello);// hello.jsexports = "fdfffd"; // conosle.log()结果 => 一个空对象{}

 

对象上面四个情况可以得出:

module.exports.[name] = [xxx]  与 exports.[name]  都是返回一个对象 对象中有 name 属性

而module.exports = [xxx]  返回实际的数据类型    而 exports = [xxx]  返回一个空对象:不起作用的空对象

 

 

 

 

 

转载于:https://www.cnblogs.com/gao-xiong/p/6005773.html

你可能感兴趣的文章
自定义 启动和关闭 oracle 的命令
查看>>
用ASP.NET Core 2.0 建立规范的 REST API
查看>>
SQLite数据库、ListView控件的使用
查看>>
Storm程序的并发机制(重点掌握)
查看>>
Quartz
查看>>
正则表达式介绍
查看>>
初识Scala反射
查看>>
第三十九天
查看>>
Redis详解
查看>>
4Sum——LeetCode
查看>>
论程序员加班的害处
查看>>
codeblocks快捷键
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>
WPF资料链接
查看>>
过滤DataTable表中的重复数据
查看>>
Oracle数据库-trunc函数的用法
查看>>
prepare for travel 旅行准备
查看>>
再次更新
查看>>
perl杂记
查看>>
go语言安装使用
查看>>