您的位置:首页 > Web前端 > Node.js

nodejs第二篇-学习require对象,exports对象。

2018-01-09 19:08 274 查看
上一篇博客就这么水过了,不管你们信不信,我算是觉得已经初识nodejs了。那接下来咱们在来接着上文global对象继续捣鼓捣鼓吧。

1.require对象

node提出的概念就是模块的意思,那模块和模块之间怎么交互呢?当然就是require了,他就跟import差不多,也没啥意思,来两个小demo,搞一搞吧。

1.打开webstrom随便创建一个项目吧:



2.创建module1.js,在里面随便写点代码吧。

console.log('我在module1中');
var speak="办公室全是小姐姐。";
setInterval(function () {
console.log(speak)
},1000);


好了,这样就差不多了。

3.创建module2.js,写上下面的代码吧。

require('./module1');


好了,把module2.js跑起来吧。你会在控制台看见这样的效果。



嗯嗯,是的。这就是require的用法。感觉也没什么意思。

这里记下require的特殊地方吧

require加载模块,可以使用相对路径,也可以使用绝对路径。但是如果相对路径不加上./的话,默认会去加载node中的核心模块,或者是node_modules文件,其次,如果不加上后缀名称,首先按照文件名称加载,其次是加上.js后缀——>.json——>.node,最后报错。

2.exports对象

让我们接着上面的代码搞一搞,把module2.js写成这个样子。

require('./module1');
console.log(speak);


好了,又把module2.js跑起来吧。你会发现下面的惊喜。。。。。



竟然报错了,不是说require已经把module1.js导入进来了吗?为啥不行。真的操蛋。招了半天也没找到答案呢,然后细细想一下,这尼玛就跟java一样对象speak就像被加了private关键字一样,不能访问。那该怎么办呢。当然是使用exports对象了啊。来,让我们去改一改module1.js的代码,如下:

console.log('我在module1中');
var speak="办公室全是小姐姐。";
exports.speak=speak;


接着修改module1.js如下:

var module1=require('./module1');
console.log(module1);
console.log(module1.speak);


接下来咱们在把module2.js跑起来。



看见没有model1竟然是一个json对象,无语。所以这样我们当然能通过module1.speak得到它的值啦。

那么除此之外,我们还可以怎么样获得其他的对象呢?这就要引出module对象了。

算了,要吃饭了下一篇跟新module对象吧。。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: