您的位置:首页 > Web前端 > Node.js

Node.js服务器

2016-04-05 09:52 567 查看
1、现在服务器软件有很多款,比较出名的是Apache、Nginx、

Node.js,它们都是当今性能很优秀的服务器。其中和Apache一起

搭配使用的软件还有Linux、MySQL、PHP,Nginx也差不多。

但是Node.js和前两者的差别还是很大的,从Node.js的名称上我们

可以看出它和JS语言貌似有什么关联。是的,它的服务器脚本语

言正是JS,并且该服务器是单线程基于异步I/O和事件循环的,它

是一款高性能的服务器。

2、用过Apache的人都知道,在用作web服务器的时候,如果脚本

用的是PHP,在HTTP请求到来的时候,在PHP脚本里面可以直接

获取到HTTP请求的参数等信息。但是在Node.js里面就没这么方便

了,Node.js提供了更底层的HTTP的JS模块——”http”,在使用的

时候需要导入该模块,例如:
var http = require("http");


通过http模块,我们就可以监听某个端口(一般是80)来得到

HTTP请求,获取到请求后,我们要手动的去解析请求里的参数,

如果是GET请求,参数就在URL里面,如果是POST请求,参数在

数据体里,示例如下:

var http = require("http");
var url = require("url");

exports.onHttpReqDemo = function(){
http.createServer(function(request, response){

var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " receieved.");

response.writeHead(200,{"Content-Type":"text/plain"});
response.write("Hello,world!");
response.end();

}).listen(80);
}


3、由于Node.js使用的JS脚本语言,我们知道在JS中有一个全局对

象的概念,在浏览器中,这个全局对象是window对象,而在

Node.js中是global对象,所有的全局变量都是它的属性,最典型的

console控制台对象就是global的属性,其实全局变量也没那么神秘

,就是一个{}对象而已。Node.js提供了很多模块,有http模块、

fs模块、url模块、events模块,其中很核心的就是events模块,通

过它可以用来监听或者发出事件,示例代码如下:

var events = require("events");
exports.onEvent = function () {

var EventEmitter = events.EventEmitter;
var event = new EventEmitter();

event.on('some_event',function () {
console.log("响应了some_event事件");
});

setTimeout(function () {
event.emit("some_event");
},2000);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  node.js