nodejs模块(1)

在nodejs中,以模块为单位划分所有的功能,并且提供了一个完整的模块加载机制,这时我们可以将应用进程划分为各个不同的部分。
nodeJS中,一个JavaScript文件中定义的变量,函数,都只在这个文件内部有效,当需要从模块外部引入这些变量,函数时,必须用exports对象进行暴露。使用者要用require()命令引入这个JS文件。
nodejs中,JS文件和JS文件就是被一个个exports和requie构建成为网状的。而不是通过包裹在HTML中产生联系的。
可以将一个Javascript文件中,描述一个类,用
module.export = 构造函数名;
的方式向外暴露一个类。

当我们在模块中引入文件,不写“./”时,就默认是从一个名为node_modules的文件中引入文件。
例如现有如下结构的文件夹:
这里写图片描述
当我们在01.js文件中写入代码:

var foo = require("foo.js");
console.log(foo.msg);

我们没有写foo的具体路径,这时,这个foo.js文件就默认是从node_modules文件中引入的文件。
node_modules文件夹中defoo.js文件中的内容为:

var msg = "haha";
exports.msg = msg;

o1.js文件的执行结果是:haha
而且即使node_modules文件不放在和01.js同级的目录下,而是把node_modules文件放在与其根文件夹同级的目录下,即如下所示:
这里写图片描述
也可以遍历文件夹,将node_modules这个文件夹找到,但是不可以将它放入与它不在同一级目录的文件夹里面,这样就无法找到文件。
如果我们在02.js中这样写:

var bar = require("bar");
console.log(bar);
console.log(bar.msg);

我们请求的一个文件夹,这个文件夹也没有指明具体的路径,此时我们默认这个文件夹在node_modules文件夹下的一个文件夹,而且暴露的文件模块默认是从一个Index,js的文件中暴露出来的。
但此时若我们将jindex.js的文件名重命名为app.js,我们将该怎样告诉计算机,现在你应该从我的app.js文件中找,而不是Index.js文件呢?
实现办法就是在bar文件夹下添加一个package,json文件夹,并且在 代码中:
(package.json文件夹要放在文件的根目录中去)

{
  "name": "kaolabar",
  "version": "0.0.1",
//  main表示入口文件
  "main":"app.js"

}

这里写图片描述
通过main告诉外界,现在我是通过app.js这个文件向外部暴露接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值