nodejs学习笔记-获取系统IP地址

745 查看

核心模块文件index.js

javascriptvar 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,对应的目录路径为:

javascriptnode_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

javascriptvar ip = require('ip');

ip = new ip(); 

ip.address();