复习一下昨天的内容
//引入http模块
var http=require('http');
var app=http.createServer(function(req,res){
//设置请求头
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
//输入内容
res.write('你好 nodejs');
//结束响应
res.end();
})
app.listen(8002,'127.0.0.1');
今天我们来学习一下如何把nodejs的一些公共模块单独封装出去
1.我们可以把公共的功能 抽离成为一个单独的 js 文件 作为一个模块,默认情况下面这个模块里面的方法或者属性,外面是没法访问的。如果要让外部可以访问模块里面的方法或者属性,就必须在模块里面通过 exports 或者 module.exports 暴露属性或者方法。
- 在需要使用这些模块的文件中,通过 require 的方式引入这个模块。这个时候就可以使用模块里面暴露的属性和方法。
先建一个tools.js 代码如下:
var tools={
add:function(x,y){
return x+y;
},
sayHello:function(){
return '你好 nodejs'
}
}
在这个文件中,我们简单的定义了2个方法
问题了我们该如何把他暴露出去,给有需要的人使用呢
module.exports
或者 exports
那这两者有什么区别呢
我们看看他的调用方法就知道了
//exports返回的是模块函数
exports.tools = tools;
tools.tools.add(1,2)
//module.exports返回的是模块对象本身,返回的是一个类
module.exports = tools;
tools.add(1,2)
在我们开头写的代码里测试
var tools=require('./tools.js');
console.log(tools.add(1,2));
console.log(tools.sayHello());
这里又引出了另外一个问题了,我们写前端是,经常require第三方的控件,也不需要写详细的路径呀,老写路径好烦人
npm init 生成 package.json
创建一个node_modules文件夹并且创建一个xixihaha文件夹 如图:
![](https://img.haomeiwen.com/i3989447/68573c0e08f88ba6.png)
cd到xixihaha的目录下 打开终端运行
npm init --yes
之后你就会发现多了一个package.json文件
![](https://img.haomeiwen.com/i3989447/71153d653142cddd.png)
![](https://img.haomeiwen.com/i3989447/bca531c04148ccf9.png)
当在外边引入xixihaha是
//xixihaha 在根目录不存在,去node_modules ,找到了xixihaha文件夹。 xixihaha文件夹下面有package.json ,找 package.json 入口文件 "main": "xixhaha.js"
var xixi = require('xixihaha');
这样就可以不用写路径也能引用找到啦
不喜勿喷,侵权即删
网友评论