广州明生医药有限公司


轻松创建nodejs服务器(3):代码模块化

网络编程 轻松创建nodejs服务器(3):代码模块化 06-21

nodejs的功能块大都以模块的形式存在的。

通常会有一个统一入口index.js,然后调用不同的模块来完成我们需要的功能。

我们先来看看怎么把server.js变成一个模块让 index.js 主文件使用。

var http = require("http");

...

http.createServer(...);

“http” 是nodejs自带的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。 我们可以用这个变量来调用 http 模块所提供的公共方法的对象,变量名不是固定的,你完全可以按照你的喜好来命名这个变量,不过我建议直接用模块名来做变量名,可以使代码可读性更高些。

我们按这个方式改一下server.js里的代码,我们把代码放到start()函数里,并通过expors将代码提供给其他页面引用。

var http = require("http");

function start() {

 function onRequest(request, response) {

  console.log("Request received.");

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

  response.write("Hello World");

  response.end();

 }

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

 console.log("Server has started.");

}

exports.start = start;

这样,我们现在就可以创建我们的主文件 index.js 并在其中启动我们的HTTP了,虽然服务器的代码还在 server.js 中。

创建 index.js 文件并写入以下内容:

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

server.start();

执行node index.js

这样做就可以把应用的不同部分放入不同的文件里,并且通过生成模块的方式把它们连接到一起了。

下一节我们要了解一下路由

轻松创建nodejs服务器(4):路由
服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤。第一步我们需要先解析出请求URL的路径,我们引入url模块。

轻松创建nodejs服务器(5):事件处理程序
为了对不同请做出不同的反馈,我们引入一个事件处理器的模块。该模块命名为requestHandlers,我们先添加start()和upload()两个占位函数。requestHandlers.js代

轻松创建nodejs服务器(6):作出响应
我们接着改造服务器,让请求处理程序能够返回一些有意义的信息。我们来看看如何实现它:1、让请求处理程序通过onRequest函数直接返回(return())他


编辑:广州明生医药有限公司

标签:模块,代码,服务器,主文,路由