什么是nodejs
最近想开始学习nodejs,首先了解一下什么是nodejs。
Node.js 不是一种独立的语言,Node.js 也不是一个 JavaScript 框架,。Node.js 是一个让 JavaScript 运行在服务
端的开发平台。大家知道之前的JavaScript只运行在前端,必须要游览器支持,现在也可以做后端语言使用。这尼玛的太神奇了,想我们开发php的是不是没有饭吃了,带着这个疑问继续往下看
Node.js优点
它是一个Javascript运行环境,上面介绍过了
依赖于Chrome V8引擎进行代码解释,V8 号称是目前世界上最快
的 JavaScript 引擎
最大的优点是异步式 I/O 与事件驱动,这里解释一下,比如php在执行mysql的时候,线程会阻塞,等待数据库返回查询结果继续执行高并发的时候,一方面要处理阻塞的线程,一方面要接受新的线程,因此
会浪费大量系统资源。nodejs是怎么做的?遇到数据库查询,不会等待数据库返回查询结果,直接执行下面的代码直到进入事件循环。当数据库查询结果返回时,会将事件发送到事件队列,等到线程进入事件循环以后,才会调
用之前的回调函数继续执行后面的逻辑。这个貌似有点类似js的异步加载。
注意javascript 因为执行在node.js平台里没有浏览器兼容性问题
为什么要使用node.js
Node.js 与 PHP+Nginx对比
细对比了 Node.js 与 PHP+Nginx 组合,结果显示在3000并发连接、30秒的
测试下,输出“hello world”请求:
PHP 每秒响应请求数为3624,平均每个请求响应时间为0.39秒;
Node.js 每秒响应请求数为7677,平均每个请求响应时间为0.13秒。
而同样的测试,对MySQL查询操作:
PHP 每秒响应请求数为1293,平均每个请求响应时间为0.82秒;
Node.js 每秒响应请求数为2999,平均每个请求响应时间为0.33秒。
上面是别人的测试结果,足以说明为什么要使用node.js了,高并发的平台里绝对是神器
node.js适合开发什么
Node.js 是一个为实时Web(Real-time Web)应用开发而诞生的平台,nodejs的适合如聊天等开发,像博客之类的还是使用php开发来的稳定
nodejs安装
windows下一直下面一步,linux下面也是一般的安装软件的方法,但是安装好之后要检查一下是否安装成功
看截图
上面看到我检查了npm,那什么是npm?
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。
安装的貌似都是通过npm安装的,安装通过下面的命令进行
npm install -g <name>
上面的-g是安装到全局里
先来写一个hello word程序提示一下成功感
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('<h1>Node.js</h1>');
response.end('Hello World');
}).listen(8080);
console.log('Server running at http://127.0.0.1:8080/');
上面的代码解释一下
第一句require 想到与php中require引入文件,这里是引入http模块,http模块是nodejs自己带的
第二句创建一个服务
listen 是侦听的端口,可以随便换但是要没有使用的端口
上面的代码我保存成test.js,然后在cmd中输入
node test.js
显示的内容是console.log输出的,这本来就是js输出命令,我一般用来调试
然后在游览器中访问127.0.0.1:8080
程序到此结束了,但是有个问题,修改一下js,就必须在命令窗口node一下,不然修改了文件游览器里显示不出来,这里
,还是安装一个东西,去掉这个重复操作
安装supervisor
用npm安装supervisor
npm install -g supervisor
然后用下面的命令运行
supervisor test.js
现在文件修改了,游览器里马上就成看到修改了