node.js构建简单的HTTP服务器

首先我们来说说JavaScript于node之间的关系:

javaScript最早是运行在浏览器中,浏览器它定义了使用JavaScript可以做什么,感觉就像是是浏览器的工具。事实上,JavaScript是一门“完整”的语言,其能力与其他同类语言相比有过之而无不及。 

Node.js允许在脱离浏览器环境运行JavaScript代码。除此之外,Node.js的还有许多有用的模块。因此,Node.js事实上既是一个运行环境,同时又是一个库。

还是遵循程序员的优良传统,用“hello world”案例来着手吧?。

## directory/index.js

console.log("hello world");

## 终端

.../directory $ node index.js

## 输出 “hello world

这个案例只是让大家了解怎么脱离浏览器执行JavaScript。

接着我们来做点有趣的事情?,构建一个HTTP服务器

var http = require("http");

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

浏览器地址栏输入http://localhost:8080,你将会看到网页输出"Hello World",这意味着已经成功构建了一个HTTP服务器。

那么它做了什么呢?

首先require了node.js自带的 http 模块。接着调用http模块提供的函数,这个函数会返回一个listen方法,调用这个方法并传入HTTP服务器监听的端口号。然后就启动一个侦听8080端口的服务器,目前为止它不会做任何事情。

这很无聊,不过我们可以添加一点代码让它变得有趣。

var http = require("http");
var url = require("url");
http
.createServer(function(request, response) {    var pathname = url.parse(request.url).pathname;    response.writeHead(200, {"Content-Type": "text/plain"});    response.write("you request url is "pathname);    response.end(); }).listen(8080);

这里我们引入了url模块,是用来解析url的,这样就可以根据你的输入显示对应的URL路径了。

到这里我们的服务器还是没什么用?,我们继续来扩展它。

image.png

可能一下变的有点复杂...

request.url可以获取当前url路径,由此来执行不同的程序。在根路径下返回了一个form表单,可以用来发起post请求。然后在/upload中来处理请求,并用request的data/on方法获取post递交的数据,然后输出它。

现在我们地址栏输入http://localhost:8080就可以看到一个form表单,然后输入文字提交表达就会跳转到http://localhost:8080/uoload,并看到输入的文字。

现在我们就拥有了一个简单的HTTP服务器。?

感谢看到这里,不对之处请不吝赐教。

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容