CommonJs 和 Nodejs 中自定义模块 (3)
一、 什么是 CommonJs? CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷。 它的终 ? 二 Nodejs中的模块化1 核心模块[http模块,url模块,Fs模块] 2 文件模块[用户形式] ? 三 自定义模块? ? 第一步: 我们可以把公共的功能抽离成一个单独的js文件作为一个模块,默认情况下面这个模块 第二步 在需要使用这些模块的文件中,通过require的方式引入这个模块,这个时候就可以使用 ? 3.1 自定义包的演变`config.js`文件代码 /* 这个config文件就是config配置文件模块 */ var str = ‘ this is config‘; exports.str =str;/* 暴露模块方法一 */ // module.exports=str; ? `common01.js`文件代码 /* 与config文件一起使用 */ let http = require(‘http‘); let config =require(‘./config.js‘); //输入模块的路径 let app =http.createServer(function (req,res) { res.writeHead(200,{"Content-Type":"text/html;charset=utf8"}); res.write(‘您好!nodejs‘); console.log(config); /* 未暴露数据,显示结果:{} 暴露结果,显示结果:{ str: ‘ this is config‘ } */ res.end(); }); app.listen(8002,"127.0.0.1");
? ? ? 暴露对象`tools.js`文件代码 //tools对象 var tools ={ add:function (x,y) { return x+y; },sayHello:function () { return ‘你好,nodejs!‘ } }; // 暴露模块 // exports.tools =tools; module.exports=tools; ? `commonjs02.js`文件代码 /* 与tools文件一起使用 */ /* 总结exports暴露于module暴露的区别*/ var tools = require(‘./tools‘); /* 省略.js也可以*/ console.log(tools); //{ tools: { add: [Function: add],sayHello: [Function: sayHello] } } console.log(tools.add(1,2)); ? 总结exports暴露于module暴露的区别 1 使用exports,console.log(tools)结果为:{ tools: { add: [Function: add],sayHello: [Function: sayHello] } } 2?使用module,console.log(tools)结果为: { add: [Function: add],sayHello: [Function: sayHello] }? ? node_modules包的作用? ? 执行结果 ? ? 解说: ? ? ?如果当前目录中找不到指定js文件,会自动去node_modules文件中找 ? 同理可以实现 `/bar/bar.js` 的模块查找 ? ? 四 模块导入,进阶方式,package.json的使用在需要导入模块中的位置启动cmd,执行如下命令,生成package.json文件 npm init --yes ? ? ? 使用方式如下 ? ? 模块导入基本流程: 1 项目根目录没有找到nav.js文件; 2 查找node_modules文件夹中查找nav.js文件,未找到 3 查找到nav文件夹,并读取package.json文件,获取文件入口nav.js; 4 找到nav.js,成功导入模块. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |