express的web server设置流程
对于express的设置,一直是拿来就用,只知其然,今天查了一下文档,记录详细过程如下。
1、实现基本常用功能需要的模块
path 用来处理路径字符串拼接,设置模板路径和静态资源路径时使用
cookie-parser 设置应用的请求对cookie的支持
body-parser 处理request请求内容,可以在req.body中访问,适用于POST请求时
ejs 静态资源模板引擎,解析html文件
express-session session设置
compression 使用gzip压缩请求头的体积,如果在服务器上,通过nginx反向代理设置了请求压缩,则也可以不使用该中间件
2. express保留的全局关键字变量,通过app.set/app.get使用
env
不是必须要设置,默认使用process.env.NODE_ENV,如果环境变量中NODE_ENV没有设置,则使用development
app.set可以设置任意的key-value关系,并通过app.get取出,但是部分保留关键字必须设置了才能让应用正常运行
views
如果使用单独的html文件,则必须设置,一个或一组目录,存储应用的页面模板(views),如果是多个目录,则在查找文件是会按照定义的顺序逐个查找
views engine
解析页面文件使用的引擎,例如上面的ejs.__express,定义了views则必须定义views engine
views cache
是否允许使用缓存的页面模板,NODE_ENV设置为production时,该变量默认值是true,其他情况的默认值是undefined
3. 静态资源文件路径设置 express.static
静态资源文件的路径设置和页面模板路径设置不同,两者也未必需要是同一个目录
静态资源路径设置的语法是:
app.use(express.static(path.join(__dirname, public_dir_name)));
4. 路由设置
简单的路由设置可以通过app.route(url, callback)的方式设置,如果需要集中设置多个路由,则可以使用express.Router创建路由中间件,
在此基础上实现路由集中处理:
var router = express.Router();
router.get("url1", callback1);
router.post("url2", callback2);
app.use(router); // 加载中间件
5. 应用启动
app.listen函数启动应用,需要指定使用的端口,hostname为可选
app.listen(port, callback);
6. 其他
关于session,在设置session时可以指定session的存储位置,除了是服务器内存,也可是数据库或其他类型存储
设置关键字:store
express的web server设置流程的更多相关文章
- laravel web server设置远程访问及原理
laravel中可以用命令行php artisan serve 启动web server,并通过localhost:8000访问项目. 但是因为开发环境为虚拟机部署项目,然后通过端口访问,所以开启服务 ...
- express快速搭建web server
安装express4.x npm install -g express npm install -g express-generator //express命令行工具在4.x分离出来了 express ...
- Unable to launch the IIS Express Web server
尝试运行程序,出现此异常提示Unable to launch the IIS Express Web server. 解决问题,是把网址修改为另一个试试: 把http://localhost:1114 ...
- Azkaban2.5安装部署(系统时区设置 + 安装和配置mysql + Azkaban Web Server 安装 + Azkaban Executor Server安装 + Azkaban web server插件安装 + Azkaban Executor Server 插件安装)(博主推荐)(五)
Azkaban是什么?(一) Azkaban的功能特点(二) Azkaban的架构(三) Hadoop工作流引擎之Azkaban与Oozie对比(四) 不多说,直接上干货! http://www.cn ...
- Unable to connect to web server 'IIS Express'(无法连接到Web服务器“IIS Express”)的解决方式-Jexus Manager
在运行微软示例工程eShopOnWeb时候, 在经过一段时间再运行启动报Error "Unable to connect to web server 'IIS Express'" ...
- Node.js 从零开发 web server博客项目[express重构博客项目]
web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...
- CentOS 5.5 下安装Countly Web Server过程记录
CentOS 5.5 下安装Countly Web Server过程记录 1. 系统更新与中文语言包安装 2. 基本环境配置: 2.1. NodeJS安装 依赖项安装 yum -y install g ...
- CSAPP Tiny web server源代码分析及搭建执行
1. Web基础 webclient和server之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议). 一个webclient(即浏览器)打开一个到server的因特网连接,而且请求 ...
- 【实例图文详解】OAuth 2.0 for Web Server Applications
原文链接:http://blog.csdn.net/hjun01/article/details/42032841 OAuth 2.0 for Web Server Applicatio ...
随机推荐
- SQL——快速定位相关的外键表
- in有两种用法:
# in有两种用法: 1. 在for中. 是把每一个元素获取到赋值给前⾯的变量. 2. 不在for中. 判断xxx是否出现在str中. #len() 为内置函数,输出为1,2,3,4....., 长度 ...
- java微信小程序解密AES/CBC/PKCS7Padding
摘要:微信小程序解密建议使用1.6及以上的环境使用maven下载jar包org.bouncycastlebcprov-jdk15on1.55加密类代码importorg.bouncycastle.jc ...
- Zookeeper框架Curator使用
本文参考自https://blog.csdn.net/wo541075754/article/details/69138878?utm_source=gold_browser_extension ht ...
- [luogu3942] 将军令
题面 题目的意思大概是给你一棵n个点的树, 求最少需要多少个多少个点, 整棵树都被覆盖(覆盖的意思是所有离被选中的点距离不大于k的点都视作已覆盖). 考虑贪心(其实我考试的时候以为是道树形dp ...
- Python之Web2py框架使用
本文主要是对Web2py框架的介绍和安装使用. 一. 介绍 全栈式Web框架:Web2py是 Google 在 web.py 基础上二次开发而来的,兼容 Google App Engine .是一个为 ...
- Python中numpy.random.randn()与rand(),numpy.zeros、ones、eye
转自:https://blog.csdn.net/u010758410/article/details/71799142
- 数字电路中应避免产生不必要的锁存器 Latch
锁存器(Latch)是数字逻辑电路中很重要的一种基本电路,常见的锁存器包括三个端口:数据输入口.数据输出口.使能端.当使能端为高电平时,输入口的数据直接送到输出口,此时输入输出口可以看成是直接连通的: ...
- Spring源码分析(二十一)加载BeanFactory
摘要: 本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 目录 一.定制化BeanFactory 二.加载BeanDefinit ...
- 51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)
1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线 ...