前言
因为最近有一个后端的接口任务要写,而在学习node之前,我们编写后端接口程序,都是用php,而php需要繁琐的环境配置。但是也有集成环境,比如xampp就有apache+php+mysql,足够支持一个微小的web应用了。
可是这次的接口是给手机app写的,那么意味着我们不需要提供类似apache服务器的功能,比如返回页面文件及其资源。取而代之,我们只需要按照接口规范返回指定的少量JSON数据即可。
这就如同java中,创建一个socket,然后listen一个端口一样。只要收到,就按照规则响应。“那你去用java啊“ ”JavaScript也事java(暴论)“
所以,最近开始学习一种新的后端平台,node.js是比较新的,而且好评如潮,是JavaScript的运行时平台。特地记录一下。
node.js 简单介绍
Node.js是一个事件驱动I/O服务端JavaScript环境,主要用于提供后端的服务。虽然其是单线程应用,但是因为大量的异步+回调函数的编程模式,使得node.js的并发处理能力非常优秀。除此之外,node.js还如同python一样,可以导入各种模块,大大减轻重复的造轮子,是快速开发的利器。
异步的优点
虽然node是单线程应用,但是因为其异步的模式,使得效能非常高。因为web应用往往伴随查询,存取等需要等待的操作。假设现在有三个并发的请求,每个请求都需要查询数据库,需要等待。
- 传统的单线程服务器在等待时会一直阻塞,直到数据取回来
- 而多线程服务器会开销几个线程同时等待。
- node的异步模式则是不等待,直接处理其他的请求,直到查询数据取回来再做响应。
这样有效利用等待的时间,避免浪费资源,所以node是一个高效的服务平台。下面的图描述了三种服务器的工作机制
ubuntu下部署node.js
安装
很简单,这次吸取了上次安装mongodb的教训,不下载压缩包手动安装了,直接用懒狗工具 apt-get来下载了
sudo apt-get install nodejs
下载完成后,我们还需要下载对应的模块安装工具nmp(类似python的pip),值得注意的是,新版的node.js好像自带npm,而我apt-get下载的版本似乎没有带。
sudo apt-get