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

时间: 2024-08-03 22:31:36

express的web server设置流程的相关文章

laravel web server设置远程访问及原理

laravel中可以用命令行php artisan serve 启动web server,并通过localhost:8000访问项目. 但是因为开发环境为虚拟机部署项目,然后通过端口访问,所以开启服务之后无法远程访问. 网上相关说明比较少,通过查看laravel配置发现 php artisan serve --host 0.0.0.0 这样既可远程访问. 原理是因为php5.4版本开始,php内置了一个web server,可以本地快速开发. php -S 0.0.0.0:8001 这样就会开启

CAM Express 多阶段加工设置流程

机械零件时常要在夹治具上进行翻面加工,在翻面之后如何将上一工站所做的结果(IPW)继承为目前工站的毛胚,以避免加工刀轨产生无效的空切削,而输出的NC代码也需对目前工站各别选定加工坐标,因此,我们藉由一个简单的范例为各位说明. 多阶段加工流程必须在装配环境当中进行,因此,我们除了在装配环境中一工站数量放入相同零件并定位之外,使用亦可将夹治具加入其中. 2  在此我们只示范两道工站,亦即对该零件之正反面加工,目前,我们已经完成第一道工站中的加工刀轨编程. 3.  接着,为翻面后的工站新增加工几何体(

CAM Express加工模版设置流程

在CAM软件进行加工编程,往往需要花费很多时间进行加工编程设置,这些设置包括:加工坐标,加工几何体,加工刀具,加工方法,加工工序...等,而在加工工序中还要进一步定义刀轨样式,切削深度,切削步距...等切削参数,以及进退刀样式,横越样式...等非切削参数,最后还有转速和进给量的设置.零零总总的这些设置加起来有数十至上百个,所以要对一个产品完成可加工之完整刀轨编程,花费之时间当然不可言喻.然而,有很多时后所加工的产品外型大同小异,加工编程设置当然也都差不多,因此,为了避免每次对类似产品进行加工编程

Using OAuth 2.0 for Web Server Applications, verifying a user's Android in-app subscription

在写本文之前先说些题外话. 前段时间游戏急于在GoolePlay上线,明知道如果不加Auth2.0的校验是不安全的还是暂时略过了这一步,果然没几天就发现后台记录与玩家实际付费不太一致,怀疑有玩家盗刷游戏元宝等,并且真实的走过了GooglePlay的所有支付流程完成道具兑换,时间一长严重性可想而知.经过查阅大量google官方文档后把代码补上,并在这里记录下OAuth 2.0 的使用,Google提供了OAuth2.0的好几种使用用途,每种使用方法都有些不同,具体可以看下这篇博客.在这里只写OAu

IIS Web服务设置故障转移

IIS 设置故障转移 1.概述 IIS故障转移是IIS下网站的冗余备份,实现网站服务的高可用性,这里的故障转移使用微软的故障转移群集,该群集是一种高可用性的基础结构层,由多台计算机组成,每台计算机相当于一个冗余节点,整个群集系统允许某部分节点掉线.故障或损坏而不影响整个系统的运作.一台服务器接管发生故障的服务器的过程通常为"故障转移". 如果一台服务器变为不可用,则另外一台服务器自动接管发生故障的服务器并继续处理任务.群集中的每台服务器,在群集中至少有一台为其做备用服务器,因此群集的每

CSAPP Tiny web server源代码分析及搭建执行

1. Web基础 webclient和server之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议). 一个webclient(即浏览器)打开一个到server的因特网连接,而且请求某些内容.server响应所请求的内容,然后关闭连接.浏览器读取这些内容.并把它显示在屏幕上. 对于webclient和server而言.内容是与一个MIME类型相关的字节序列. 常见的MIME类型: MIME类型 描写叙述 text/html HTML页面 text/plain 无格式文本 ima

DICOM:剖析Orthanc中的Web Server,Mongoose之 Flag bit & Event(三)

背景: Orthanc是本专栏中介绍过的一款新型DICOM服务器,具有轻量级.支持REST的特性,可将任意运行Windows和Linux系统的计算机变成DICOM服务器,即miniPACS.Orthanc内嵌多种模块,数据库管理简单,且不依赖于第三方软件.因此通过剖析Orthanc源码可以学习到搭建DICOM系统中的各个环节,例如SQLite嵌入型数据库.GoogleLog日志库.DCMTK医学DICOM库,以及近期要介绍的开源Web Server,Mongoose. 上一篇博文中简单的分析了M

【实例图文详解】OAuth 2.0 for Web Server Applications

原文链接:http://blog.csdn.net/hjun01/article/details/42032841        OAuth 2.0 for Web Server Applications, verifying a user's Android in-app subscription 在写本文之前先说些题外话. 前段时间游戏急于在GoolePlay上线,明知道如果不加Auth2.0的校验是不安全的还是暂时略过了这一步,果然没几天就发现后台记录与玩家实际付费不太一致,怀疑有玩家盗刷

DICOM:剖析Orthanc中的Web Server, Mongoose

背景: DICOM专栏文章中介绍过解构PACS(分布式PACS)Orthanc的安装和使用,以及相关插件.SQLite数据库等主要模块的分析,此次简单介绍Orthanc中嵌入的Web Server,Mongoose.依托于Mongoose这一轻量级Web Server,Orthanc很好的实现了RESTful API与传统DICOM服务的整合,这也是实现分布式PACS的关键.博文中先给出Mongoose的安装和简单的与C/C++的嵌入式编程,让大家对Mongoose有一个初步的认识,后续再深入分