当我准备开始写我的第一个“真正的”Node.js应用的时候,我不但不知道怎么写Node.js代码,也不知道怎么组织这些代码。
我应该把所有东西都放进一个文件里吗?网上有很多教程都会教你把所有的逻辑都放进一个用Node.js写的基础HTTP服务器里。但是如果我想加入更多的内容,同时还想保持代码的可读性呢?
实际上,只要把不同功能的代码放入不同的模块中,保持代码分离还是相当简单的。
这种方法允许你拥有一个干净的主文件(main file),你可以用Node.js执行它;同时你可以拥有干净的模块,它们可以被主文件和其他的模块调用。
那么,现在我们来创建一个用于启动我们的应用的主文件,和一个保存着我们的HTTP服务器代码的模块。
在我的印象里,把主文件叫做index.js或多或少是个标准格式。把服务器模块放进叫server.js的文件里则很好理解。
让我们先从服务器模块开始。在你的项目的根目录下创建一个叫server.js的文件,并写入以下代码:
var http = require("http");
http.createServer(function(request, response) { //当回调启动,我们的 onRequest() 函数被触发的时候,有两个参数被传入: request 和 response 。它们是对象,你可以使用它们的方法来处理HTTP请求的细节,并且响应请求(比如向发出请求的浏览器发回一些东西)。
console.log("aaa");
response.writeHead(200, {"Content-Type": "text/plain"});//使用 response.writeHead() 函数发送一个HTTP状态200和HTTP头的内容类型(content-type)
response.write("Hello World"); //使用 response.write() 函数在HTTP相应主体中发送文本“Hello World"
response.end(); //最后,我们调用 response.end() 完成响应。
}).listen(8888);
console.log("asd");
搞定!你刚刚完成了一个可以工作的HTTP服务器。为了证明这一点,我们来运行并且测试这段代码。首先,用Node.js执行你的脚本:
node server.js
接下来,打开浏览器访问http://localhost:8888/,你会看到一个写着“Hello World”的网页。