这是nodeJS最基础的操作,但是百分之99的人不知道,你也不知道吧!

一、封装模块

新建一个test.js文件,上代码:

//test.js

function test() {

console.log("IT有些事儿,微信公众号:ITYXSE");

}

exports.testBegin = test();//等号后边跟函数同名

等号后面的test,指的是上面的函数名。等号前面的testBegin,是调用时的函数名(注意区别)

控制台打印:

好,最简单的基本封装模块好了。

二、调用模块

新建一个js文件。命名diaoyong.js,哈哈我随便起的名字,你们也随意,但是最好要让自己能第一时间区分,别一看到就懵逼,不知道是干啥用的。

//diaoyong.js

var test = require("./test");//调用模块

test.testBegin;

看,就这样,调用该模块的方法(注意方法名是test.js中exports后面的变量名)看控制台输出:

怎么样,是不是很简单啊

三、获得访问的路径

需要获取访问者需要访问的路径,方法是通过http的方法createServer,

具体看代码和注释:

//server.js

//调用http和URL模块

var http = require("http");

var url = require("url");

function onRequest(request, response) {

//获取url中的请求路径

var pathname = url.parse(request.url).pathname;

response.writeHead(200, {"Content-type": "text/plain"});

response.write(pathname);

response.end();

}

//创建一个服务器,监听80端口

http.createServer(onRequest).listen(80);

console.log("server is start!");

这个函数有两个参数:request和response,请求和响应。具体不用我说了,大家可以百度特么一下。

好,我们启动服务

在浏览器中输入localhost:80或者127.0.0.1:80,具体情况自己定,结果如下

那么,输入127.0.0.1:80/woshilujing,结果如下

怎么样,也很简单吧。

四、函数式编程

函数式编程,就是将函数做为参数进行传递。

下面先创建四个js文件,具体请看:

Server.js

//

var http = require("http");

var url = require("url");

//start函数中,第一个参数是route函数(来源于router模块),

// 第二个参数是一个对象(来源于index.js)

function start(route, handle) {

function onRequest(request, response) {

var pathname = url.parse(request.url).pathname;

console.log("请求路径是: " + pathname);

route(handle, pathname); //来源于上面的start的参数

response.writeHead(200);

response.write("请求路径是:" + pathname);

response.end();

}

http.createServer(onRequest).listen(80);

console.log("服务启动!!");

}

exports.start = start;

router.js

//判断是不是函数,是就执行函数。函数来源于index里加载的模块requestHandlers

function route(handle, pathname) {

console.log("发现请求路径: " + pathname);

if (typeof handle[pathname] === 'function') {

handle[pathname]();

} else {

console.log("没有此路径: " + pathname);

}

}

exports.route = route;

requestHandler.js

function start() {

console.log("请求 'start' 被调用");

}

function upload() {

console.log("请求 'upload' 被调用");

}

exports.start = start;

exports.upload = upload

Index.js

//调用了3个模块,然后声明了一个空的对象,

// 然后给这个对象声明了几个不同的变量(准确的说是函数变量),

// 他们分别对应requestHandlers这个模块的不同函数;

var server = require("./server"); //调用该模块

var router = require("./router");

var requestHandlers = require("./requestHandler");

var handle = {};

handle["/"] = requestHandlers.start;

handle["/start"] = requestHandlers.start;

handle["/upload"] = requestHandlers.upload;

//调用server这个模块的start方法,传两个参数,

// 分别是router模块的route方法和对象handle(包含3个函数变量)

server.start(router.route, handle);

好,启动服务:

浏览器访问http://127.0.0.1/start,控制台打印如下:

浏览器访问http://127.0.0.1/upload,控制台打印如下:

这里借用别人一张图来解释实现模式:

经过这么简单一讲,您是否对NodeJS编程感觉到了浓厚的兴趣了呢?个人认为,编程是门艺术,不需要过多的语言叙述,只要你亲自下手去敲,去理解,比听出来的效果要好。希望大家都能学好NodeJS,

最后希望多多关注我。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180120A0RV0G00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动