node.js自定义模块——一篇搞定

《node.js自定义模块——一篇搞定》

Node.js模块也可以自己创建,然后在模块里面定义方法。

一、创建模块

模块就是一个文件,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。
以下是创建模块:


// node.js 模块系统 // 创建模块 function creatModel(){ let model = require("./hello"); // 模块其实就是一个文件,现在要新建一个hello文件。 model.world(); // 调用模块的world接口 };

二、使用模块

创建好模块之后就可以编写模块和使用模块了。exports 是模块公开的接口(对象),用于封装模块。require获取模块接口,写在调用模块的地方。在外部引用该模块时,其接口对象就是要输出的 Hello 对象本身,而不是原先的 exports。
以下以hello.js模块为例:

// exports 是模块公开的接口(对象)
// require获取模块接口

// exports.world = function(){
// console.log("调用模块的 world 方法")
// };
// 一个对象封装到模块中
module.exports = function(){
// ...
};

function hello(){
// 定义模块方法
this.sayHi = function(){
console.log("hi");
};
this.sayHello = function(){
console.log("hello");
};
};

// 在外部引用该模块时,其接口对象就是要输出的 Hello 对象本身,而不是原先的 exports。
module.exports = hello;

调用模块,使用模块:

// 直接获得world对象
function getWorld(){
let Hello = require("./hello"); // 在hello.js文件中已经把hello函数封装在exports接口中
let hello = new Hello(); // 对象实例化
hello.sayHi(); // 调用方法
hello.sayHello();
// hi
// hello
}
getWorld();

三、函数

在这里node.js函数和在JavaScript中的函数没有什么区别。重点是使用函数的特性让HTTP工作。
下面先来看一下node.js使用函数中的什么方法让HTTP工作的。

// node.js 函数

function say(value){
console.log(value);
};
function fun(value1,value2){
value1(value2);
};
// 执行函数时赋值,函数可以作为参数
fun(say,"hi,muimui");
// 匿名函数
fun(function(value){
console.log("写于:"+value)
},"2019-9-29");

明白了以上的特点,来看下HTTP服务器:

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(8888);


点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注