文档章节

Express配置项说明

webphp
 webphp
发布于 2017/07/26 11:28
字数 505
阅读 5
收藏 0
点赞 0
评论 0

app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);

 

express.favicon(iconPath):用来设置网站的图标,参数为图标的路径。如果不指明,则用默认的express图标。可以修改为:

app.use(express.favicon(path.join(__dirname,'../public/img/favicon.ico')))

express.bodyParser(): 对请求内容进行解析,支持json、 application/x-www-form-urlencoded、multipart/form-data 格式数据的解析。也就是说ajax和form发送请求时,都会经过它的处理,方便在req中获取相应的请求值。在express中处理文件上传也是用它, 可以给出参数指明上传文件存放的路径,比如:

app.use(express.bodyParser({uploadDir:'./uploads'}))

express.methodOverride():为了支持put、delete等HTTP方法,不过要客户端配合,包含相应的_method参数,比如:

<formaction='/users/1'> ...
  <inputtype="hidden"name="_method"value="put"/></form>

可以对应到:

app.put('/users/:id', users.put)

app.use(express.cookieParser('your secret here'));app.use(express.session());:是为了支持session,在这样的设置中,session会被加密保存在客户端的cookie,但这样程序重启后session就不起作用了,不过express.session支持session的持久化保存,因为express用的最多的数据库就是mongo,所以下面给出用mongo保存session的配置。首先要在package.json里加上依赖项connect-mongo

"connect-mongo":"0.3.3"

 

然后在config/express.coffee中引入connect-mongo,并修改express.session的设置:

mongoStore =require('connect-mongo')(express)

app.use express.session
      secret:'1234567890'
      store:new mongoStore
        url: config.db,
        collection :'sessions'

app.router是connect router的加强版,用来处理app.getapp.post等请求处理设置,在浏览器访问这些设置中对应的url时,express.router会调用相应的function。如果不显式调用app.use(app.router),express会在第一次碰到app.get(...)之类的设置时隐含调用,所以这个可以不用出现在配置项里,但.use的顺序很关键,所以显式调用比较好。比如在use中出现app.use(express.static(path.join(__dirname, 'public')));时,如果router没有出现,或被放在了它后面,那服务器每次遇到请求就会到硬盘上找有没有对应的静态文件,会造成性能下降。

© 著作权归作者所有

共有 人打赏支持
webphp
粉丝 1
博文 91
码字总数 91650
作品 0
海淀
程序员
Nodejs框架演进之路

Nodejs框架演进之路 大部分框架的演进之路大体都是一样的 实现(土方法) 实践(项目实操) 看齐最佳实践 不断封装、造轮子 走出自己的特色 下面简单的介绍一下moajs的演进之路 什么是Moajs...

i5ting ⋅ 2015/12/26 ⋅ 0

NodeJs进程管理神器 pm2 使用记录

简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。 下面就对PM2进行入门性的介绍,基本涵盖了PM2的常用的功...

卟想苌亣 ⋅ 2017/12/05 ⋅ 1

SQL Server 2005 Express 远程访问设置方法

SQL Server 2005 Express 作为微软数据库的低端解决方案,在开发小型应用和WEB应用中有广泛的使用。但是SQL Server 2005 Exrpress在默认安装下只允许本机访问,如何启用网络访问功能就很有必...

LiuChang ⋅ 2010/04/16 ⋅ 0

mongodb备份-mmb使用说明和如何导出更可读的csv

mongodb备份和导出csv mongodb备份方式有三种 文件快照方式 复制数据文件方式 使用mongodump方式 原理 mongodb的简单备份一般使用mongoexport即可,只要你装了mongodb就有的命令,上面说的其...

i5ting ⋅ 2015/08/23 ⋅ 2

Node系列——express项目搭建

1、项目环境搭建 1.1、 安装node这个不多说了。 1.2、安装express,全局安装-g npm install -g express 1.3、安装express-generator,全局安装-g express4.0之后把创建一个APP的功能分离出来...

龙马行空 ⋅ 2015/07/23 ⋅ 6

使用Express快速搭建前端项目框架

使用Express快速搭建前端项目框架 Express是基于Node.js的前端Web开发框架,使用其可以简洁快速的创建健壮友好的API服务。在前端或移动端的开发过程中,可以借助Express的这项功能模拟API数据...

珲少 ⋅ 2016/11/27 ⋅ 0

doramart/DoraCMS

DoraCMS 2.0.3 2.0.3版本更新 1、上传缩略图支持七牛云存储 2、取消在后台首页显示用户敏感信息,提高安全性 3、管理员登录md5加密 4、修复描述信息不是必填项,但是也验证了 5、站点地图域名...

doramart ⋅ 2015/08/18 ⋅ 0

为npm配置taobao源

taobao提供的国内镜像npm源很好,速度相当快。在npm install时使用此源,依赖包加载速度相当快,而且不会被墙掉。 源地址:https://registry.npm.taobao.org 设置方法如下(win10): 打开c...

rickqin ⋅ 2017/12/03 ⋅ 0

【NodeJS】安装CNPM

首先建立一个文件夹用来存放Node全局的插件 比如我建立的文件夹路径为"/home/zfj/npmConfig" 设置全局安装路径 npm config set prefix "/home/zfj/npmConfig/npm" npm config set globalcon...

江江的喵 ⋅ 2016/02/29 ⋅ 0

VS2012+Win7网站发布详细步骤

VS2012+Win7网站发布详细步骤   本机环境:   本文分三个部分介绍Web项目发布的常规方法,大神级别可以略过,主要是为了方便一些初学者。 第一部分:VS2012把项目发布到文件系统。 第二部...

yonghu86 ⋅ 2015/07/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 45分钟前 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部