一. 前言
本篇文档主要用来汇总自己从入门学习Node.js
开始的学习总结。好记性不如烂笔头,以文档的形式记录下来,以便今后拿来即用。
真香~
二. 基础概念
1. 什么是node? 什么是Express?
什么是node?
Node(正式名称Node.js)是一个开源的,跨平台的运行时环境,有了它,开发人员可以使用javascript
创建各种服务器端工具和应用程序。此运行时主要用于浏览器上下文之外(即可以直接运行在计算机或操作系统上)。
从web服务开发者的角度看,Node有很多好处:
-
卓越的性能表现:Node为优化web应用的吞吐量和拓展度而生。
-
代码还是熟悉的JavaScript,这样在客户端和服务器端开发切换的成本更低
-
Node包管理器(NPM)提供了数十万个可重用的工具包,
-
Node是可移植的,可运行于Window,macOS,Linux,Solaris
-
Node有非常活跃的第三方生态系统和开发者社区
-
与传统的web服务器语言(例如:Python,PHP等)相比,JavaScript理念更新,语言的设计与改进带来了诸多好处。许多新近流行的开发语言也可编译/转换成JavaScript,所以Typescript等也都可以使用。
Node是一个单线程事件驱动的执行环境,“单线程”意味着对服务器的所有请求都运行在一个线程上,这个模式在速度和管理服务器资源方面效率很高,但也意味着如果以“同步方式”调用函数占用了很长时间,不仅会阻塞当前请求,还会阻塞当前web应用其他请求。
什么是web框架?
Node本身是不支持常见的web开发任务的,如果需要进行一些具体的处理,比如:运行其他的HTTP
动词(GET
,POST
,DELETE
),分别处理不同的URL路径的请求(“路由”),托管静态文件,用模板来动态创建相应,就需要自己编写代码或者使用web框架(Express
),避免重复造轮子。
什么是Express?
Express是目前最流行的Node框架,是很多其他流行的Node框架的底层库。Express本身是极简的,但是开发人员通过创建各类兼容的中间件
解决了几乎所有的开发问题(Express是高度包容的,几乎可以将任何兼容的中间件以任意顺序插入到请求处理链中)。Express提供了一下机制:
- 为不同的URL路径中使用不同的HTTP动词的请求(路由)编写处理程序
- 集成了“视图”渲染引擎,以便通过将数据插入模板来生成响应
- 设置了常见的web应用设置,比如用于连接的端口,以及渲染响应模板的位置
- 在请求处理管道的任何位置添加了额外的请求处理“中间件”
2. 搭建Express开发环境
完整的Express本地开发环境包括:Node
,NPM包管理器
,Express应用生成器
。
Node,NPM省略安装步骤…
Express-generator安装步骤:
-
npm(-g全局安装express-generator,这样就可以在任意的应用中使用了)
npm install express-generator -g
-
创建一个项目
直接使用express命令,将使用Jade视图引擎和纯CSS在当前目录下创建项目。
还可以使用
--view
选择模板引擎,或使用--css
选择CSS生成引擎。express [项目名]
express --help // 查看所有选项 用法:express [选项] [目录] 选项: --version 打印版本号 -e, --ejs 添加 ejs 引擎支持 --pug 添加 pug 引擎支持 --hbs 添加 handlebars 引擎支持 -H, --hogan 添加 hogan.js 引擎支持 -v, --view <engine> 添加 <engine> 试图引擎支持 (ejs|hbs|hjs|jade|pug|twig|vash) (默认为 jade) -c, --css <engine> 添加 <engine> 样式表引擎支持 (less|stylus|compass|sass) (默认为纯 css) --git 添加 .gitignore -f, --force 对非空文件夹强制执行 -h, --help 打印帮助信息
-
此时当前目录下已经新建了项目,并且根目录下有一个
package.json
文件,其中可见需要安装的依赖:express和Jade模板库npm install
-
运行项目
npm start
-
浏览器访问 3000端口即可http://127.0.0.1:3000/