代码注释里已经描述的非常的清晰,这里就不多废话了,直接奉上代码:
/*在node中,可以使用require()函数来加载模块. * require函数使用一个参数,参数值可以带有完整路径的模块的文件名,也可以为模块名.当使用node中提供的模块时,在require函数中只需要指定模块名即可. * */ //建立一个页面2.js;代码如下 var name="思思博士"; exports.name=name; //建立一个页面1.js;代码如下 var two=require("./2.js"); console.log(two.name); //输出结果:思思博士/* * 在node中所有的脚本文件都是一个模块文件,因此1.js也是一个模块文件,又由于该文件是在命令行窗口中通过node命令被直接运行的,因此在node中该模块文件被定义为应用程序的主模块 * 可以用如下的方法检测出当前的模块是否是主模块 * */ if(module===require.main){ console.log("当前模块时主模块"); } //输出结果:当前模块时主模块
//2.js代码 var name="思思博士"; console.log(name); exports.name=name;
//1.js代码: var two=require("./2.js"); var two=require("./2.js"); //虽然引用了2次,但是只是执行了1次console.log(name)的输出.
/*require.resolve(str) * 在node中,可以使用这个函数来查询某个模块文件的带有完整绝对路径的文件名. * */ var url=require.resolve("./2"); console.log(url); //输出结果:E:\node\gys\2.js
/*require.cache * 在node中,这个属性代表了所有已被加载模块的缓存区. * */
var two=require("./2.js"); var cache=require.cache; console.log(cache); /*输出结果: * { 'E:\\node\\gys\\1.js': { id: '.', exports: {}, parent: null, filename: 'E:\\node\\gys\\1.js', loaded: false, children: [ [Object] ], paths: [ 'E:\\node\\gys\\node_modules', 'E:\\node\\node_modules', 'E:\\node_modules' ] }, 'E:\\node\\gys\\2.js': { id: 'E:\\node\\gys\\2.js', exports: { name: '思思博士' }, parent: { id: '.', exports: {}, parent: null, filename: 'E:\\node\\gys\\1.js', loaded: false, children: [Object], paths: [Object] }, filename: 'E:\\node\\gys\\2.js', loaded: true, children: [], paths: [ 'E:\\node\\gys\\node_modules', 'E:\\node\\node_modules', 'E:\\node_modules' ] } } * */
//2.js代码 var name="思思博士"; console.log(name); //1.js代码 //当使用delete关键字删除缓存区中缓存的某个模块对象后,下次加载该模块时将重新运行该模块中的代码.使用代码:
var two=require("./2.js"); var two1=require("./2.js"); console.log("删除前") delete require.cache[require.resolve("./2.js")]; console.log("删除后"); var two2=require("./2.js"); /* * 输出结果: * 思思博士 * 删除前 * 删除后 * 思思博士 * */
小伙伴们是否清楚了node.js中require的使用方法了呢,如有疑问,请留言。
问题内容: 我尝试了这个: 所以我想象require()可能是这样实现的: 那正确吗?请帮助我了解require()或在哪里可以找到源代码。谢谢! 问题答案: 源代码在这里。/ 不是关键字,而是全局变量。你的主要脚本包前开始在其拥有所有喜欢全局的功能,等在其上下文。 请注意,虽然module.js本身正在使用,但这是一个不同的require函数,它是在名为“ node.js”的文件中定义的 上面的
问题内容: 在我正在合作的项目中,关于可以使用哪种模块系统,我们有两个选择: 导入使用的模块,并使用导出和。 使用ES6导入模块,并使用ES6导出 相互使用是否对性能有好处?如果要在Node模块上使用ES6模块,还有其他什么应该知道的吗? 问题答案: 相互使用是否对性能有好处? 请记住,还没有JavaScript引擎本身支持ES6模块。您说自己正在使用Babel。无论如何,Babel都会默认将其转
问题内容: 在我的 app.js中, 我有以下3行。 user.js文件看起来就像普通的辅助方法。但是,它需要与数据库进行交互。 user.js 显然,我想在文件内部使用。无论如何,当我使用method 时,我可以将其传递给文件吗? 问题答案: 我认为您想做的是: 这使您可以将客户端作为模块中每个函数的参数,或作为模块作用域变量,如下所示:
问题内容: 到目前为止,我已经通过以下方式创建了类和模块: 现在使用ES6,您可以像下面这样创建“实际”类: 现在,首先,我喜欢这个:),但这引起了一个问题。如何将其与的模块结构结合使用? 假设您有一个班级,为了演示而希望使用一个模块,说您想使用 所以您创建文件: Animal.js 这是正确的方法吗? 另外,如何将此类公开给节点项目中的其他文件?如果在单独的文件中使用它,您仍然可以扩展该类吗?
本文向大家介绍Node.js中require的工作原理浅析,包括了Node.js中require的工作原理浅析的使用技巧和注意事项,需要的朋友参考一下 几乎所有的Node.js开发人员可以告诉你`require()`函数做什么,但我们又有多少人真正知道它是如何工作的?我们每天都使用它来加载库和模块,但它的行为,对于我们来说反而是一个谜。 出于好奇,我钻研了node的核心代码来找出在引擎下发生了什么
本文向大家介绍详解webpack解惑:require的五种用法,包括了详解webpack解惑:require的五种用法的使用技巧和注意事项,需要的朋友参考一下 webpack中可以写commonjs格式的require同步语法,可以写AMD格式的require回调语法,还有一个require.ensure,以及webpack自己定义的require.include,再加上ES6的import语法,