node模块

  为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Node环境中,一个.js文件就称之为一个模块(module)。

  使用模块有什么好处?

  最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Node内置的模块和来自第三方的模块。

  例:

  模块的名字就是文件名(去掉.js后缀),比如hello.js文件就是名为hello的模块。

  创建greet模块:

  greet.js文件内容:

var s = ‘Hello‘;

function greet(name) {
    console.log(s + ‘, ‘ + name + ‘!‘);
}

module.exports = greet;

  调用greet模块:  例如创建了一个main.js文件,文件内容:
// 引入hello模块:
var greet = require(‘./hello‘);

var s = ‘Michael‘;

greet(s); // Hello, Michael!

  reuire函数是node专门提供用来引入模块使用的。  引入的模块作为变量保存在greet变量中,那greet变量到底是什么东西?其实变量greet就是在hello.js中我们用module.exports = greet;输出的greet函数。所以,main.js就成功地引用了hello.js模块中定义的greet()函数,接下来就可以直接使用它了。
  在使用require()引入模块的时候,请注意模块的相对路径。因为main.jshello.js位于同一个目录,所以我们用了当前目录.var greet = require(‘./hello‘); // 不要忘了写相对目录!

  这里千万千万强调,引入模块必须要写相对路径,不然会全局搜索,会报错。
 
时间: 2024-10-11 15:14:49

node模块的相关文章

node模块机制

一.node模块化机制 1.commonJS模块规范包括三部分:模块引用.模块定义.模块标识.例如: //math.js exports.add = function(){    var sum = 0;    var args = arguments;    var len = args.length;    for(var i = 0;i < len;i++){        var num = args[i];        sum += num;    }    return sum;}

node模块系统常用命令

node模块系统常用命令 命令 示例 备注 安装模块 npm install commander 最新版本 npm install [email protected] 指定版本 npm install [email protected] 支持通配符,代表1.0版本下的最新补丁 npm install [email protected]"" 支持版本范围描述,代表最新版本 npm install [email protected]"*" 支持版本范围描述,代表最新版本

【转】Commonjs规范及Node模块实现

前言: Node在实现中并非完全按照CommonJS规范实现,而是对模块规范进行了一定的取舍,同时也增加了少许自身需要的特性.本文将详细介绍NodeJS的模块实现 引入 nodejs是区别于javascript的,在javascript中的顶层对象是window,而在node中的顶层对象是global [注意]实际上,javascript也存在global对象,只是其并不对外访问,而使用window对象指向global对象而已 在javascript中,通过var a = 100:是可以通过wi

node 模块正确暴露方法

一个node模块,为了能够服用,就需要将其暴露,那么如何正确写呢?(参考:https://developer.mozilla.org/zh-CN/docs/Learn/Server-side/Express_Nodejs/Introduction) [正确写法A] exports.area = width => { return width * width; }; exports.perimeter = width => { return 4 * width; }; [正确写法B] modul

windows下尝试编写node模块

1,首先参考http://www.cnblogs.com/yupeng/p/3469444.html写了一个模块 2,按照指引运行 F:\Program Files\nodejs\mymodule>node-gyp configure build 奶奶的,一开始就少了一个node-gyp,上网一艘,原来这也是一个模块 'node-gyp' 不是内部或外部命令,也不是可运行的程序或批处理文件. F:\Program Files\nodejs\mymodule>npm install -g nod

node模块示例

来源于慕课网课程:http://www.imooc.com/video/6701 (视频) 模块的流程图如下: 做一个学校的模块示例 建一个学生的js studet.js function add(student){ console.log("add student:"+student); } //暴露公开api exports.add = add; 建一个老师的js teacher.js function add(teacher){ console.log("add tea

node 模块部分介绍

chai  断言框架 mocha mochawesome  对mocha 定制报告,生成完整成熟的报告. node-fetch  服务器版fetch superagent  是node 客户端请求代理模块.

Typescript和Node模块解析策略

一般我们在模块化编码时,总会导入其它模块,通常我们使用如下语法: import { A } from './a'; // ES6语法 import { A } from 'a'; var A = require('./a'); // commonjs规范 不论使用哪种语法,导入的文件一般有两种:内部文件(自己开发的)和外部(node_modules)中两种,其中导入内部模块称之为相对导入,导入node_modules中,称之为非相对导入,它们在语法上的区别就是导入的路径是否是相对的 接下来我们看

node模块之net模块——socket

当我们去面试的时候,常常会遇到这样一个问题:当用户在浏览器地址栏输入一段url发出资源请求后,到服务端返回数据呈现给用户的这个过程都发生了什么? 我们把进行通信的这两个端(这里指的是,浏览器和资源获取的地方)称之为客户端和服务端.我们连通两个端进行通信,靠的就是socket这个东西.他将特定格式的内容进行传递,以达到客户端和服务端通信的目的. 最近刚好在学习node的net模块,接触到这一块内容.下面就来看看node中socket通信的一种实现方式. client.js // 客户端 const