美文网首页我爱编程
6-1 Node.js 模块

6-1 Node.js 模块

作者: 陈小陌丿 | 来源:发表于2016-09-12 22:11 被阅读0次

Node.js 的模块

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。
换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。

创建一个模块

创建一个 funcitons.js 文件 文件内容如下

/*
 * 这是一个对 对象 操作的模块
 */

// 定义一个数组
var arr = new Object();

// 获取单个数据
function get(key){
  return arr[key];
}

function getList(){
  return arr;
}

function add(key, value){
  return arr[key] = value;
}

function edit(key, value){
  return arr[key] = value;
}


function del(key){
  return delete arr[key];
}

function clear(){
  arr = new Object();
}

function dump(){
  data = getList();
  console.log(data);
}

//  通过设置modul.exports对象
//  将这些方法绑定到 modul.exports对象
//  当导入这个文件的时候 就可以调用了
module.exports.get = get;
module.exports.getList = getList;
module.exports.add = add;
module.exports.edit = edit;
module.exports.del = del;
module.exports.clear = clear;
module.exports.dump = dump;

模块的使用

在同目录下 创建一个 code.js 内容如下


// 导入模块
var functions  = require('./functions');
// 注意模块导入模块的是不加 “.js” 后缀的
// 模块名即 文件名
// 路径必须 填写 绝对路径 或者相对路径
// 即 /xxxx/xxx/文件名 或者 ./xxx/文件名
// 如果路径 是这样的  'functions' 这样是会报错的。
// 只有node.js 内部的模块  才可以这么引入 例如  http, fs 等


// 打印看看 functions 对象 都是啥。。。

// 看看对象有什么
console.log(functions);

// 打印的数据如下 全是我们刚才暴露的方法。。。。。
// chen@chen:~/study/2-1 module$ node 2-2\ code.js
// { get: [Function: add],
//   getList: [Function: getList],
//   add: [Function: add],
//   edit: [Function: edit],
//   del: [Function: del],
//   clear: [Function: clear],
//   dump: [Function: dump] }
// chen@chen:~/study/2-1 module$
//



// 使用模块
/*
所有刚刚在 functions 文件中暴露的都可以通 引入的对象操作
*/

// 添加
functions.add('11', 'aaa');
functions.add('22', 'bbb');

// 获取单个
var data = functions.get('11');
console.log(data);


// 获取列表
data = functions.getList();
console.log(data);

// 修改单个
functions.edit('11', 'ccc');
functions.dump();


// 删除单个
functions.del('11');
functions.dump();

// 清空全部
functions.clear();
functions.dump();

输出的效果如下

chen@chen:~/study/nodejs/module$ node  code.js 
// 这个是对象信息
{ get: [Function: get],
  getList: [Function: getList],
  add: [Function: add],
  edit: [Function: edit],
  del: [Function: del],
  clear: [Function: clear],
  dump: [Function: dump] }

// 下方是调用方法的输出结果
aaa
{ '11': 'aaa', '22': 'bbb' }
{ '11': 'ccc', '22': 'bbb' }
{ '22': 'bbb' }
{}
chen@chen:~/study/nodejs/module$ 

模块小结

  • 最好一个模块 一个操作,但是不要太过耦合 和 单一
  • 文件名即是 模块名
  • 引入 模块的时候 注意路径 要么是绝对路径 要么是相对路径
  • 只用引入 nodejs 自带模块 才可以 不带路径 直接模块名
  • 模块内的方法 或者对象,如果需要被外部访问,需要通过设置 module.exports. 来绑定

相关文章

网友评论

    本文标题:6-1 Node.js 模块

    本文链接:https://www.haomeiwen.com/subject/imlpettx.html