当前位置: 首页 > news >正文

做网站汉口七台河做网站

做网站汉口,七台河做网站,怎么做网站或APP,网站突然不收录了在Node.js中#xff0c;要导入另一个模块#xff0c;我们可以使用require函数。这个函数接受一个文件路径参数#xff0c;并返回导入的模块。 注意#xff1a;require导入包场景#xff1a;内置模块、自定义模块、npm包的导入... 下面介绍内置模块与自定义模块。npm包的…在Node.js中要导入另一个模块我们可以使用require函数。这个函数接受一个文件路径参数并返回导入的模块。 注意require导入包场景内置模块、自定义模块、npm包的导入... 下面介绍内置模块与自定义模块。npm包的导入在后续的包管理工具的博客中会具体介绍 一、require使用注意事项 (1)自己创建的模块导入时建议写相对路径不能省略./和../ //我把文件全写入37.导入模块这个文件夹里。自定义变量名one const onerequire(../37.导入模块);(2)js和json文件导入时可不写后缀名.js .json 可省略 注意补充json模块JSON语法是javaScript语法的子集javaScript用[]中括号来表示数组用{}大括号来表示对象JSON亦是如此 目录 //一、test.js测试代码 // 1.导入js文件。后缀名可省略。(我随便导入一个js文件 const jstestrequire(../../../04.Buffer介绍) console.log(jstest); // 2.导入json文件。后缀名可省略 const jsontestrequire(../02/test3); console.log(jsontest); // 3.当js与json文件同名读取时优先读取js const jsjsonrequire(../02/test2); console.log(jsjson); //我是js文件 //test2.js里面 module.exports我是js文件; //test2.json文件里面 {age: 18,str: json,name:我是json文件 } //test3.json文件里面 [{ firstName:1 , lastName:2 },{ firstName:3 , lastName:4 },{ firstName:5 , lastName: 6 } ] test.js的终端显示 (3)如果导入了其他类型的文件会以js文件进行处理 目录 // test.js测试代码 const testrequire(../03/test2.abc1); console.log(test); //我是其他类型的文件1 const test2require(../03/abc1); console.log(test2); //我是其他类型的文件2 //abc1代码 module.exports我是其他类型的文件2 //test2.abc1代码 module.exports我是其他类型的文件1 test.js的终端显示 (4)当你尝试导入一个文件夹作为模块或包时Node.js 或其他相关工具会按照特定的规则去寻找该文件夹中的入口文件。 1》若导入的路径是一个文件夹则会先检测该文件夹下的package.json文件中main属性对应的文件如果 package.json 中的 main 属性为 main.js那么该文件夹的入口文件就是 main.js。 目录 //test.js测试代码 // 导入文件夹 const wjjrequire(./main); console.log(wjj); //我是一个模块 // 若package.json里面的main属性不存在或main属性里面的路径不存在则会报错 //main文件夹下的package.json代码{main: ./app.js } //main文件夹下的app.js代码 module.exports我是一个模块; test.js的终端显示 2》如果main属性或package.json文件不存在则会检测文件夹下的名为index.json与index.json作为入口这里的“或”意味着它会按照这个顺序尝试这些文件名直到找到一个存在的文件为止,如果还未找到则报错 //test.js测试代码 const wjj2require(./main2); console.log(wjj2); //{ main: ./a.js } //main2文件夹下的index.json代码 {main: ./a.js } test.js终端显示 (5)导入node.js内置模块时直接require模块的名字即可无需加./和../ // eg:fs模块、http模块 const fsrequire(fs); 二、导入自定义模块的基本流程 (1)将相对路径转为绝对路径定位目标文件 (2)缓存检测 (3)读取目标文件代码 (4)包裹为一个函数并执行自执行函数 (5)缓存模块的值 (6)返回module.exports的值 代码示例 目录 //show.js测试代码(伪代码实现)function require(file) { // (1)将相对路径转为绝对路径定位目标文件let absolutePathpath.resolve(__dirname,file); // (2)缓存检测 // 判断之前有没有导入过该文件如果导入过该文件则将该文件的暴露值返回不继续往下走了。没有就走第三步读取目标文件往caches[absolutePath]里面去存入存入后进入第二步直接返回不继续执行下面代码。 if(caches[absolutePath]){return caches[absolutePath]; } // (3)读取目标文件代码 // 如果未导入过该文件就读取该文件内容 const fsrequire(fs); let codefs.readFileSync(absolutePath).toString(); //返回结果是一个buffer用tostring()转为字符串 // (4)包裹为一个函数并执行自执行函数 // module、exports...这些变量在require内部模块都是有声明的 let module{}; let exportsmodule.exports{} // 执行该函数()() (function (exports, require, module, __filename, __dirname) {// 创建一个对象const test{name:包裹,}// 暴露该对象// module.exports更改的是let exportsmodule.exports{}中的module.exports的值module.exportstest;// 输出这个函数console.log(arguments.callee.toString());})(exports, require, module, __filename, __dirname) //因为函数声明时是有形参的所以在调用时将实参传入到第二个()里面 // (5)缓存模块的值 // 键名键值(暴露的结果值) // 注意node.js内部它缓存的值不是module.exports值而是缓存的一个模块对象。方便理解下面写成了module.exports值 caches[absolutePath]module.exports; // (6)返回module.exports的值 return module.exports; } //index.js (show.js的代码效果 ): // 导入me.js const merequire(./me.js); //输出结果{ name: 包裹 } 证明代码没问题函数已执行// 再去导入me.js const me2require(./me.js); // 输出结果还是只有上面那个{ name: 包裹 }。只输出了一次。 // 因为第一次输出结果被缓存了。第二次再去加载该模块发现已缓存了直接进行show.js文件的第二步直接返回。不继续往下走了 //me.js (为了方便index.js的测试) // 创建一个对象 const test{name:包裹, } // 暴露该对象 module.exportstest;// 注意me.js这个文件里面的代码在内部执行时是包裹在一个函数里面的 // 输出这个函数 console.log(arguments.callee.toString()); // 将返回的结果这个包裹的函数贴入show.js的第四步(4)包裹为一个函数并执行自执行函数里面console.log(test); //为了方便index.js的测试输出test index.js终端显示
http://www.hkea.cn/news/14506431/

相关文章:

  • php网站模块修改c 网站开发 vs2012
  • 建站快车品牌信息公司网站建设方案 游戏
  • 广东企业网站模板推荐电子商务公司是做什么的
  • 服装网站建设论文范文网站 制作公司
  • 社交网站开发意义做网站如何语音
  • 手机网站建设openwrt wordpress
  • 主流网站 技术买了域名后怎么建立网址
  • 花生壳可做网站吗提供低价网站建设
  • 比较专业的建设网站的公司页游排行榜2022
  • ppt做视频模板下载网站有哪些内容阿里云服务器ip做网站
  • wp网站建设网站模板免费下载代码
  • 做百度移动端网站优建网站怎么挣钱的
  • 网站正在建设中换句话表达在线视频制作网站
  • 沈阳成创网站建设公司百度品牌
  • 网站被降权重新做网站邯郸哪做网站
  • 如何访问win7下做的网站24小时最新在线视频免费观看
  • 郯城县住房和城乡建设局网站wordpress google字体
  • 网站建设备案优化wordpress 自定义目录
  • python网站开发 完整例子网站建设实物实训目的
  • 网站国际网络备案号微信代运营
  • 杭州网站建设制作个人域名备案完成了 可以改网站内容吗
  • 土建设计网站四年级写一小段新闻
  • flash网站建设个人简介做毕业设计的网站设计
  • 如何建淘客网站网站建设一个月做十单
  • 做我网站网站小图标素材下载
  • 企业网站教程 优帮云园林景观设计公司招聘
  • 国际学校网站如何建设北京网页设计公司就找兴田德润
  • 要建一个网站该怎么做重庆建设工程信息网官网入口30系统登入
  • 合肥滨湖建设指挥部网站百度站长平台提交网站
  • 做网站用什么笔记本配置定制开发电商网站建设公司