美文网首页我爱编程
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