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”,在使用的
时候需要导入该模块,例如:
通过http模块,我们就可以监听某个端口(一般是80)来得到
HTTP请求,获取到请求后,我们要手动的去解析请求里的参数,
如果是GET请求,参数就在URL里面,如果是POST请求,参数在
数据体里,示例如下:
3、由于Node.js使用的JS脚本语言,我们知道在JS中有一个全局对
象的概念,在浏览器中,这个全局对象是window对象,而在
Node.js中是global对象,所有的全局变量都是它的属性,最典型的
console控制台对象就是global的属性,其实全局变量也没那么神秘
,就是一个{}对象而已。Node.js提供了很多模块,有http模块、
fs模块、url模块、events模块,其中很核心的就是events模块,通
过它可以用来监听或者发出事件,示例代码如下:
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); }
相关文章推荐
- 使用 HTTP 上传 G 级的文件之 Node.js 版本
- mongo实现消息队列
- Node.js压缩web项目中的js,css和图片
- async.js 学习记录
- 异步流程控制:7 行代码学会 co 模块
- node.js中的fs.mkdir方法使用说明
- 为什么Node.js会这么火呢?Node.js流行的原因
- 究竟什么是Node.js?Node.js有什么好处?
- Linux下为Node.js程序配置MySQL或Oracle数据库的方法
- 三种Node.js写文件的方式
- node.js中的http.response.removeHeader方法使用说明
- 快速掌握Node.js模块封装及使用
- Node.js文件操作方法汇总
- Nodejs爬虫进阶教程之异步并发控制
- 简单谈谈node.js 版本控制 nvm和 n
- 浅析Node.js查找字符串功能
- Node.js中require的工作原理浅析
- 运行Node.js的IIS扩展iisnode安装配置笔记
- Node.js实现JS文件合并小工具
- 使用npm发布Node.JS程序包教程