Node在一线企业中的运用
作为中间层
我们通常说前端和后端,前端负责用户界面,而后端负责提供数据和业务接口。现在我们在两者间加入一层,前端并不是直接去请求后端业务接口,而是请求到中间层。再由中间层去请求业务接口,看一下示意图
整个流程可以描述为:客户端直接请求到中间层的Node服务,Node服务分析请求,看需要哪个页面,再去请求对应数据,拿到数据后和模版结合成用户看到页面,再给到客户端。
那么有的人可能会觉得,这种模式不是更麻烦了吗?其实不然,我们来看看 中间层的优点
:
1.减轻客户端内存,项目用户体验好。不会像mvvm模式的项目把页面渲染和数据请求都压在客户端,而是在服务端完成。
2.SEO性好,不像mvvm模式页面由js生成,而是在服务器渲染好html 字符,有利于网页被搜索到。
3.保持了前后端分离的优点和目的,即解放后端,后端可以继续以接口的形式写业务代码。
4.前端可以操控的范围增多,甚至可以做服务器,数据库层面的优化,比如中间层中常常用nginx,redis来优化项目,应对高并发。
5.中间层模式是一种开发模式上的进步,为什么这么好的模式我从来没有听说过呢?因为这种模式成本过高,如果没有一定量级的项目没必要去采用。
做项目构建工具
这里说的项目构建工具,我相信大家都用过,我们的webpack,vue-cli都是输入项目构建工具。那么大家觉得这一类工具神奇好用方便的同时,有没有想过这些工具是拿什么语言写的?其实它们并不难,这些工具都是用Node来写的。
很多公司都会开发自己公司的项目构建工具,帮助公司项目做的更标准更方便,一个好的项目构建工具,会极大的加快整个公司的项目开发效率。
这一类的项目构建工具一般都要很多的文件操作,Node对于i/o流的操作,在目前的主流后端语言中数一数二。所以越来越多的公司选择用Node来做项目构建工具。
做一些小型网站后端
用Node做后端,可能是大多数人认为的Node作用。其实真正在企业之中,很少会让你去用Node去做后端。 所以一般来说都是做一些小型或者个人站的后端。
Node.js是什么?
Node.js 诞生于 2009 年,由 Joyent 的员工 Ryan Dahl 开发而成, 目前官网最新版本已经更新到 12.0.0版本,最新稳定的是10.15.3。Node.js 不是一门语言也不是框架,它只是基于 Google V8 引擎的 JavaScript 运行时环境,同时结合 Libuv 扩展了 JavaScript 功能,使之支持 io、fs 等只有语言才有的特性,使得 JavaScript 能够同时具有 DOM 操作(浏览器)和 I/O、文件读写、操作数据库(服务器端)等能力,是目前最简单的全栈式语言。
这里我们可以简单理解Node.js是一个内置有chrome V8引擎的JavaScript运行环境,他可以使原本在浏览器中运行的JavaScript有能力跑后端,从而操作我们数据库,进行文件读写等。
目前市面上高密集的I/O模型,比如 Web 开发,微服务,前端构建等都有做Node.js的身影。不少大型网站都是使用 Node.js 作为后台开发语言的,比如 淘宝 双十一、去哪儿网 的 PC 端核心业务等。另外我们一些前端工具譬如VSCode,webpack等也是有Node.js开发。
Node.js的包管理工具,npm已经成为世界开源包管理中最大的生态,功能强大,目前单月使用者接近1000万。
Node.js特点(记住三句话)
事件驱动 非阻塞IO模型(异步) 轻量和高效
node.js安装和简单使用
安装方法
简单的安装方式是直接官网下载,然后本地安装即可。官网地址:nodejs.org
Windows系统下,选择和系统版本匹配的.msi后缀的安装文件。Mac OS X系统下,选择.pkg后缀的安装文件。
测试是否安装成功
打开终端,键入命令node,如果进入命令行式js交互环境,即安装成功。
我们可以直接在终端node环境下输入简短的js代码,比如正则表达式。
如果要运行一大段代码的话,可以先写一个JS文件再运行。例如有以下hello.js。
function hello() {
console.log('Hello World!');
}
hello();
写好后在终端下键入node hello.js运行,结果如下:
$ node hello.js
Hello World!
如果需要退出node环境,可以在终端连续输入两次:Ctrl+C即可。
node学习
注意
Node.js使得JavaScript可以脱离浏览器的窗口,独立运行在Node.js提供的环境中,所以Node.js中没有BOM,DOM这些概念。Node.js中根本没有页面,主要是进行一些服务器上的操作(比如:读写文件,网络通信…)。我们只需要基本的JavaScript语法基础(ES6)即可学习。
使用nodemon自动重启项目
我们在开发的过程中,每次改完代码之后都必须重启服务器,显然这样的操作效率是比较低,这里给大家推荐个工具,nodemon,nodemon可以帮我们实时监听项目中代码的变化,并且自动重启服务,而且配置简单。
安装:
npm install -g nodemon
使用nodemon运行项目,取代之前的node app.js。
nodemon [your app.js]
项目运行之后,nodemon会自动监听代码的改动,并且重新启动服务,大大增加我们开发效率。
nodemon常见配置
在命令行指定应用的端口号:
nodemon ./server.js localhost 8080
查看帮助,帮助里面有很多选项都是一目了然:
nodemon -h 或者 nodemon --help
运行 debug 模式:
nodemon --debug ./server.js 80
手动重启项目:
Nodemon 命令运行的终端 窗口中输入 rs
两个字符,然后再按下回车键,就能手动重启 Nodemon了。