node.js基础:模块的创建和引入

  模块可能是一个文件,也可能是包含一个或多个文件的目录。如果模块是个目录,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对象)

     

时间: 2024-10-07 02:21:40

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

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

node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要学习过的案例自己敲了一遍,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 二.知识点    ①:supera

初学node.js安装模块时创建空文件用taobao镜像安装速度变快

在C:\Users\xx文件夹下按Shift,单击鼠标右键选择‘在此处打开命令行’,输入ren xx.x .npmrc   /*此处把一个已知文件xx.x修改为空文件名的文件.npmrc*/或者用一般的IDE:EditPlus或者sbulime直接创建.npmrc文件,接下编辑该文件输入registry = http://registry.npm.taobao.org在npm安装模块的速度就会变快.在初次安装nodejs时命令行输入npm可能最报错,可以先安装一个模块后再敲npm,例如npm i

Node.js:模块

概要:本篇博客主要介绍node.js的模块 1.创建模块 在node.js中创建一个模块非常简单,因为一个文件就是一个模块.我们只需要明白如何从其他文件中获取这个模块.Node.js提供了 exports 和 require 两个对象,其中exports是模块的公开接口,require用于从外部获取一个模块的接口,即所获取模块的exports对象.看下面的例子. 创建一个module.js的文件,内容是: var name; exports.setName = function(thyName)

Node.js基础知识杂烩

Node.js基础知识杂烩 这段时间做项目主要做关于服务器的功能点,因此,逐渐开始学习node.js写服务器,总体下来,觉得node比php更好用,写服务前器的速度更快,处理效率更高.注:node并不是专门写服务器的,其实node的出现,将js从web前端的专用语言,变成了一门通用语言.node中有各样的基础模块:比如fs,path,buffer,http,net等模块,此外,node还有各种各样的三方模块,比如写服务器人常用的express,co,koa,seqlize等著名框架,也就是三方模

node.js基础内容

node.js node.js是建立在谷歌Chrome的JavaScript引擎(v8)的web应用程序框架. node.js 自带的运行环境可在JavaScript脚本的基础上解释和执行.这个运行是运行在浏览器以外的任何机器上执行JavaScript代码.所以也可以在服务端运行,Node.js还提供了各种丰富的JavaScript模块库,它极大简化了使用Node.js来扩展Web应用程序的研究与开发. 特性 Node.js库的异步和事件驱动的API全部都是异步就是非阻塞.它主要是指基于Node

Node.js之模块机制

文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 其实在JavaScript的发展中,它主要是在浏览器前端中被应用广泛.因为在实际应用中, JavaScript的表现能力主要取决于宿主环境的API支持程度, 在最早期,只有对BOM, DOM的支持,随着HTML5的出现,在浏览器中出现了更多,更强大的API供JavaScript调用,但是这些都是发生在前端,后端JavaScript的规范却远远落后.Java有class文件,Phthon有import机制,P

Node.js(二)——模块与包管理工具

http,process等等这些都是模块 一.Node.js的模块与Commonjs规范 1.js的天生缺陷--缺少模块化管理机制 ·表现--JS中容易出现变量被覆盖,方法被替代的情况(既被污染).特别是存在依赖关系时,容易出现错误.这是因为JS缺少模块管理机制,来隔离实现各种不同功能的JS判断,避免它们相互污染. ·解决--经常采用命名空间的方式,把变量和函数限制在某个特定的作用域内,人肉约定一套命名规范来限制代码,保证代码安全运行.jQuery中有许多变量和方法,但是无法直接访问,必须通过j

进击Node.js基础(二)

一.一个牛逼闪闪的知识点Promise npm install bluebird 二.牛逼闪闪的Promise只需三点1.Promise是JS针对异步操作场景的解决方案 针对异步的场景,业界有很多解决方案,如回调.事件机制 Promise是一个对象,同时它也一种规范,针对异步操作约定了统一的接口,表示一个异步操作的最终结果以同步的方式来写代码,执行的操作是异步的,但是又保证程序的执行顺序是同步的. 原本是社区的一个规范的构想,被加入到ES6的语言标准里面,比如Chrom,Firefox浏览器已对

Node.js 的模块系统

Node.js的模块系统是借鉴 CommonJS 的 Modules 规范实现的,因此,下面我们需要先了解 CommonJS 的 Modules 规范,希望对大家学习Node.js有所帮助. CommonJS 的 Modules 规范 CommonJS 对模块的定义非常简单,主要分为 模块引用.模块定义和模块标识三个部分. 1. 模块引用 - require() 方法 2. 模块定义 - module.exports 对象 3. 模块标识 - 传递给 require() 方法的参数 通过 Com

(译)Node.js的模块-exports和module.exports

原文标题:Node.js Module – exports vs module.exports原文链接:http://www.hacksparrow.com/node-js-exports-vs-module-exports.html exports 和 module.exports 有什么区别? 你一定很熟悉 Node.js 模块中的用来在你的模块中创建函数的 exports 对象,就像下面这样. 创建一个叫做rocker.js的文件: exports.name = function() {