关于node.js介绍及应用场景
nodejs
- node基于V8引擎,webkit内核
- 类似webview、谷歌浏览器等
- nvm安装地址
- https://github.com/coreybutler/nvm-windows/releases
- 官网:nodejs.org
- nvm可以实现nodejs版本的切换
- npm工具,下载nodejs所需的模块
- 后面学习的webpack(自动化项目部署)就是基于node环境运行的
-
node不是后台语言,是一个工具或者环境,js是全栈语言
-
基于V8引擎渲染js
- REPL模式;(read-evaluate-print-loop,输入-求值-输出-循环)
- 在命令行中node xxx.js
- 一般会把node安装在服务器上,在服务器端写一些js代码,通过node执行这些代码,实现服务器应该干的一些
- 在WEBSTORM等编辑器中执行
-
单线程,无阻塞I/O操作,event-driven事件驱动
- node是单线程异步,基于事件驱动任务执行
- 类似发布订阅
-
npm (node package manager) 是安装node后自带的模块管理工具,基于它可以安装和写在对应的模块,类似的管理工具还有bower,yarn
-
npm 是从npmjs.com下载
-
bower安装模块是从github.com上下载
- 基于node.js(javascript)实现服务器端的功能操作
- 项目架构1
- 基于node.js构建全栈项目(一般用于中小型项目)
- 项目架构2
- 单线程异步,无阻塞I/O,事件驱动,
- node.js作为服务层,抗压和抗并发的能力比较不错
- 也有可能基于node.js中间层实现跨域传输
- 客户端和中间层在同一个域下(同源),基于中间层从第三方服务器上获取数据(node.js可以跨域获取数据)
- 项目架构3
- 基于node.js实现服务器渲染
- 客户端数据绑定后,在页面源代码中看不到绑定的内容,不利于SEO优化推广,所以有些产品需要放弃“客户端渲染,”,改为“服务器渲染”(由node.js处理)
- 接收到请求后找资源文件xx.html,向后台发送各种请求,拿到页面中每一部分需要展示的数据,然后数据和样式在服务器端进行渲染,渲染出有结构和数据的页面,返回给客户端浏览器
- 资源文件在中间层,也充当了web服务器
- 模块:ECMAScript语法:变量,循环,判断等
- 内置/核心模块:http服务,fs文件操作,url路径,path路径处理,os操作系统
-
自定义Node.js模块
-
写法
- exports.属性/方法名=功能; 这是快捷方式
- module.export.属性/方法=变量名
-
引入
- var 对象=require(‘路径及文件名’)
path模块
- const path=require(‘path’)
- 最常用,在mvc部分
- dirname 去掉最后一层 (取前面)
- basename 取最后一层(取最后)
url 模块
- url.parse(data);
- url.parse(data,true);