模块可能是一个文件,也可能是包含一个或多个文件的目录。如果模块是个目录,node.js通常会在这个目录下找一个叫index.js的文件作为模块的入口。

  典型的模块是一个包含exports对象属性定义的文件,这些属性可以是任意类型的数据,比如字符串、对象和函数。

  创建一个模块 

//person.js
var name = 'lbs';
var age = 10;
function sayName(){
console.log( name );
}
function sayAge(){
console.log( age );
}
exports.sayName = sayName;
exports.sayAge = sayAge;

  引入一个模块

//index.js
var person = require('./person');
person.sayName();
person.sayAge();

  require函数以要用的模块的路径为参数。

   引入一个以 ./ 开头的模块意味着:当前文件和被引用的文件属于同一级目录(这里的person.js 和 index.js 位于同一个目录下)。

   引入时 .js 扩展名可以忽略。

   如果需要从模块中得到单个变量、函数或者对象,用module.exports

//person.js
var Person = function(){
this.name = 'lbs';
this.age = 10;
};
Person.prototype = {
sayName: function(){
console.log( this.name );
},
sayAge: function(){
console.log( this.age );
}
};
module.exports = Person; //index.js
var Person = require('./person');
var person = new Person();
person.sayName();
person.sayAge();

  如果模块是目录,在模块目录中定义模块的文件必须被命名为index.js。除非在这个目录下一个叫package.json的文件里特别指明。要指定一个取代index.js的文件,package.json文件里必须有一个用JavaScript对象表示法(JSON)数据定义的对象,其中有一个名为main的键,指明模块目录内主文件的路径。

     exports是模块的公开接口

   require从外部获取一个模块接口(获取的模块是exports对象)

     

node.js基础:模块的创建和引入的更多相关文章

  1. node.js基础模块http、网页分析工具cherrio实现爬虫

    node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...

  2. Node.js:模块

    概要:本篇博客主要介绍node.js的模块 1.创建模块 在node.js中创建一个模块非常简单,因为一个文件就是一个模块.我们只需要明白如何从其他文件中获取这个模块.Node.js提供了 expor ...

  3. 01慕课网《进击Node.js基础(一)》Node.js安装,创建例子

    版本:偶数位为稳定版本,基数为非稳定版本 - 0.6.x - 0.7.x    - 0.8.x -0.9.x    -0.10.x  -0.11.x 概念:Node.js采用谷歌浏览器的V8引擎,用C ...

  4. Node.js之模块机制

    > 文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. ![file](https://img2018.cnblogs.com/blog/830272/20 ...

  5. node.js中模块和包

    node.js中模块和包 什么是模块 如何创建并加载模块 1. 创建模块 2. 单次加载 3. 覆盖 exports 如何创建一个包 1. 作为文件夹的模块 2. package.json 如何使用包 ...

  6. Node.js基础与实战

    Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...

  7. Node.js Web模块

    什么是Web服务器? Web服务器是处理由HTTP客户端发送的,如web浏览器的HTTP请求的软件应用程序,并返回响应于客户端网页. Web服务器通常伴随着图片,样式表和脚本的HTML文档. 大多数W ...

  8. Node.js基础知识

    Node.js入门   Node.js     Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...

  9. Node.js的安装以及Node.js的模块管理

    索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...

  10. Node.js DNS 模块

    Node.js DNS 模块用于解析域名.引入 DNS 模块语法格式如下: var dns = require("dns") 方法 序号 方法 & 描述 1 dns.loo ...

随机推荐

  1. Object.Instantiate 实例

    static function Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object ...

  2. 全面总结:matlab怎么做漂亮的图

    源地址:http://blog.csdn.net/ccxcau/article/details/7362764 MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.本章主要介绍2 ...

  3. VSTO学习笔记(四)从SharePoint 2010中下载文件

    原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给CO ...

  4. [置顶] think in java interview-高级开发人员面试宝典(七)

    上两周研发任务太紧了,所以担搁了一下,我们继续我们的面试之旅. 下面是一个基于图书系统的15道SQL问答,供大家参考 问题描述:本题用到下面三个关系表:CARD     借书卡.   CNO 卡号,N ...

  5. LeetCode总结 -- 树的性质篇

    树的性质推断是树的数据结构比較主要的操作,一般考到都属于非常easy的题目,也就是第一道入门题.面试中最好不能有问题,力求一遍写对.不要给面试官不论什么挑刺机会.LeetCode中关于树的性质有下面题 ...

  6. CC Subarray LCM (数学)

    题目连接:http://www.codechef.com/problems/SUBLCM 题意:给定一个序列,求最长连续子序列满足 LCM(Ai,Ai+1...Aj) =Ai*Ai+1*...*Aj. ...

  7. atitit.团队建设--要不要招技术储备人才的问题

    atitit.团队建设--要不要招技术储备人才的问题 1.      人才的储备和招聘. 1 1.1.   模式1.     养兵千日,用兵一时 1 1.2. 模式2,暂时抱佛脚,也不多招一个人 1 ...

  8. JAVA的class打包成dll

    一.将已经编译后的java中Class文件进行打包:打包命令JAR 如:将某目录下的所有class文件夹全部进行打包处理: 使用的命令:jar cvf test.jar -C com/ . //注意这 ...

  9. java中final的意义

    1.如果一个数据既是static又是final,那么它会拥有一块无法改变的存储空间. 2.final data: 当final用于基本数据类型时,final让其值(value)保持不变,但是当用于ob ...

  10. 无法解析该名称 outlook必须处于联机,控制面板删除账户

    无法解析该名称 outlook必须处于联机,控制面板删除账户