模块可能是一个文件,也可能是包含一个或多个文件的目录。如果模块是个目录,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. F5 root密码恢复

    使用串口线缆链接F5的串口和PC相连接,调节串口的波特率为12000,重启F5 后在启动菜单上和linux 单用户模式一样操作即可.

  2. 关于Opencv2.4.x中stitcher类的简单应用

    1.opencv2.4以上版本有stitcher类,可以简单方便的实现图像的拼接,目前只是简单的测试一下stitcher类的拼接功能,也是纠结了好长时间,最终发现是要在链接库中加上opencv_sti ...

  3. VMware vSphere 服务器虚拟化之二十七桌面虚拟化之View中使用Thinapp软件虚拟化

    VMware vSphere 服务器虚拟化之二十七桌面虚拟化之View中使用Thinapp软件虚拟化 VMware ThinApp 应用程序虚拟化软件是无代理解决方案,通过将应用程序隔离并封装为EXE ...

  4. FAAC1.28 在海思HI3520D/HI3515A平台linux中的编译 优化

    FAAC1.28的下载地址:http://www.audiocoding.com/downloads.html 怎样编译: 1../configure --host=arm-hisiv100nptl- ...

  5. Linux------创建和终止进程

    创建进程: Linux创建两个步骤的新处理:fork()和exec().其中fork创建当前进程的能力(父进程)副本,那个孩子.父子进程只有PID不同.在这之后,该系统具有两个进程,运行相同的操作.父 ...

  6. IOS开发笔记 - 基于wsdl2objc调用webservice

    为了方便在ios下调用webserivce,找来了wsdl2objc这样一个开源的框架来解析webservice方便在ios下引用. 下面做个小例子. 1.首先是用Asp.net搭建一个测试的webs ...

  7. Smarty中模板eq相等 ne、neq不相等, gt大于, lt小于

    eq相等   ne.neq不相等,   gt大于, lt小于 gte.ge大于等于   lte.le 小于等于   not非   mod求模   is [not] div by是否能被某数整除   i ...

  8. 【转】C# String.Format数字格式化输出各种转换{0:N2} {0:D2} {0:C2}...

    ; //格式为sring输出 // Label1.Text = string.Format("asdfadsf{0}adsfasdf",a); // Label2.Text = & ...

  9. 主要的核心思想是取cookie然后发查询请求,不需要浏览器做代理(转)

    需求是催生项目和推进项目的不竭动力. 背景: 最近,因为媳妇要做个B超检查,想着去大医院查查应该更放心,所以就把目标瞄准在A医院.早已耳闻A院一号难求万人空巷,所以把所有能接触到的机会都看了一遍,线下 ...

  10. Java数据结构系列之——栈(2):栈的链式存储结构及其操作

    package Stack; import LinkList.SinglyLinkList; public class LinkListStack { private SinglyLinkList&l ...