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路径了。
到这里我们的服务器还是没什么用?,我们继续来扩展它。
可能一下变的有点复杂...
request.url可以获取当前url路径,由此来执行不同的程序。在根路径下返回了一个form表单,可以用来发起post请求。然后在/upload中来处理请求,并用request的data/on方法获取post递交的数据,然后输出它。
现在我们地址栏输入http://localhost:8080就可以看到一个form表单,然后输入文字提交表达就会跳转到http://localhost:8080/uoload,并看到输入的文字。
现在我们就拥有了一个简单的HTTP服务器。?
感谢看到这里,不对之处请不吝赐教。
这个人暂时没有 freestyle