核心模块文件index.js
javascript
var os = require('os'); var ip = function() { console.log('obtain an IP address'); } ip.prototype.address = function() { var network = os.networkInterfaces(); for(var i = 0; i < network.en1.length; i++) { var json = network.en1[i]; if(json.family == 'IPv4') { console.log(json.address); } } } module.exports = ip;
将index.js文件放到项目node_modules目录中,并在此目录中新创建一个新的目录,命名为ip,对应的目录路径为:
javascript
node_modules/ip/index.js
这样做的好处:
外部调用的时候,只输入引入模块名就可以了,nodejs会自动加载该目录下的模块。
这样做的坏处:
模块的名称必须命名为index.js,否则nodejs将报Error: Cannot find module ‘自定义模块名’ 错误。
另一种方法:
1、目录结构不变,模块的名称可以随便定义。例如xx.js。
2、在该目录下新创建一个文件叫package.json。在这里指定模块的路径及名字:
javascript
{ "name" : "ip", "main" : "./xx.js" }
注意:name值必须是模块中module.exports后的值,否则,还是会报 Cannot find module ‘自定义模块名’错误。
调用文件test.js
javascript
var ip = require('ip'); ip = new ip(); ip.address();