项目中要用到passport登录验证,环境如标题样:express框架,coffee模版引擎,node后台

一:建项目

直接用express命令建,虽然默认模版为jade,可以手动换成coffee哦。打开命令行,D盘:

express passportTest    

会出来一堆create,然后

cd passportTest

在passportTest文件夹下会看到创建好的文件和文件夹

                           package.json 文件       

dependencies : 项目依赖项,可手动增减。

可以修改配置文件,然后通过npm install 来安装所有的依赖模块,也可以一个一个的安装。我是通过修改dependencies来一次性安装了。最新版本为latest字段

npm install

这样dependencies下面的依赖模块都已经安装在一个叫“node_module”的文件夹里

再来看整个目录结构,用express生成的文件结构不太符合mvc模式,所以我手动改了下文件结构,将routes文件夹换为controllers,加models文件夹。

目录结构生成好后,接下来改模版引擎,改为coffee的语法结构,引用coffeecup的模版引擎。先改app.js文件为coffee,内容如下:

在views下改写index.coffee

在controllers/routes.coffee中引用所有的controllers,

运行后。。。 成功跑起来。。。

但是有问题:

express.favicon(iconPath):用来设置网站的图标,参数为图标的路径。如果不指明,则用默认的express图标。上面报错找不到favicon.ico

修改:

也可以自定义图标放public下,改‘/public/favicon.ico’即可

屏蔽app.use express.logger('dev'),使用中间件方法在代码里加入自己打印的日志:

app.use (req, res, next) ->
console.info '[HEAD]' + req.method + ' ' + req.url
console.info '[BODY]' + JSON.stringify(req.body)
next()

第一次加入的时候,并不能打印出console.log ,后来查原因是该方法必须写在app.use(app.router)前面,中间件的优先顺序问题。先看看app.router是干嘛的:

app.routerconnect 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没有出现,或被放在了它后面,那服务器每次遇到请求就会到硬盘上找有没有对应的静态文件,会造成性能下降。所以app.router要放在调用静态文件的前面。

简单理解:app.router里边会创建一个路由map,把类似app.get、app.post等的所有路由的url和callback做一个映射保存,当req.url命中路由时执行相应的回调。如果不显式调用app.use(app.router);则会在第一条默认路由里边隐式调用。

调用app.use(app.router);app.router会暂存req对象,当后面再定义路由时,app.get('/foo', function(req, res, next) {});这里的req应该用的是之前保存下来的,所以有些关联的功能会没有,比如没有req.flash ]

最后输出自己想要的格式:

下一篇写passport验证

express+nodecoffee写passport登录验证实例(一)的更多相关文章

  1. express+nodecoffee写passport登录验证实例(二)

    二:实现登录认证 passport官网文档:  http://passportjs.org/guide/ passport验证使用一种被称为“策略”的方式来验证请求,策略支持3种类型的验证:用户名密码 ...

  2. Shiro安全框架入门篇(登录验证实例详解与源码)

    转载自http://blog.csdn.net/u013142781 一.Shiro框架简单介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权.Shiro在JavaSE和J ...

  3. passport登录问题:passport.use 方法没有被调用

    写passport登录验证时,无论如何passport.use 方法都没有被调用,最后在同事的帮助下,才找到问题: 我是用form提交登陆数据的, input type:"text" ...

  4. Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(函登录验证)

    上一篇 Asp.Net 中Grid详解两种方法使用LigerUI加载数据库数据填充数据分页  了解了LigerUI 中Grid的基本用法  现在结合上一篇的内容做一个简单的后台管理,当然也有前台的页面 ...

  5. nodeJS---express4+passport实现用户注册登录验证

    网上有很多关于passport模块使用方法的介绍,不过基本上都是基于express3的,本文介绍在express4框架中使用passport模块. 前言 passport是一个功能单一,但非常强大的一 ...

  6. Express + Session 实现登录验证

    1. 写在前面 当我们登录了一个网站,在没有退出登录的情况下,我们关闭了这个网站 ,过一段时间,再次打开这个网站,依然还会是登录状态.这是因为,当我们登录了一个网站,服务器会保存我们的登录状态,直到我 ...

  7. 搭建开发框架Express,实现Web网站登录验证

    NodeJS学习笔记(一)——搭建开发框架Express,实现Web网站登录验证   JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需 ...

  8. 网站注册与登录使用 bcrypt与 passport 双重验证 解释

    网站在登录前,需要进行注册收集用户基本信息,bcrypt 提供密码加密验证的方法,但是使用不正确,会给初学者带来各种问题. bcrypt 的安装: npm i bcrypt 经过测试,经常安装不成功, ...

  9. ThinkPHP实例—实现登录验证

    ThinkPHP 验证 本篇我们将运用商城实例讲解一下如何运用ThinkPHP做一个登录验证 我们的框架目录结构如下图所示: 其中 app  文件夹就是我们的应用文件夹  它的目录结构如下所示 其中 ...

随机推荐

  1. ServiceStack.OrmLite 学习笔记3 建表

    创建表 前一篇忘记写创建表了,这里补上.(其实前一篇也有那么一点) 建议安装源码里的t4模板看看效果先. public 的属性才有效 在表被创建或者删除的时候执行sql语句 [PostCreateTa ...

  2. 作用域内优先级及this指针

    函数声明>变量声明 作用域:顶部----------------------> 函数声明会覆盖变量声明,但不会覆盖变量赋值 this指针不是变量.当调用括号的左边不是引用类型而是其它类型, ...

  3. C#堆栈和托管堆

    首先堆栈和堆(托管堆)都在进程的虚拟内存中.(在32位处理器上每个进程的虚拟内存为4GB) 堆栈stack 堆栈中存储值类型. 堆栈实际上是向下填充,即由高内存地址指向低内存地址填充. 堆栈的工作方式 ...

  4. 【FFT-快速傅立叶变换】

    HDU-1402 A * B Problem Plus 题意:给定两个整数,整数的长度最多能达到50000位,输出两个整数的乘积. 分析:题意非常的明了,一个惊世骇俗的想法是使用两个数组将整数保留起来 ...

  5. jqurey click和blur执行时间冲突

    参考资料:http://stackoverflow.com/questions/10652852/jquery-fire-click-before-blur-event

  6. [转载] HTTP请求的TCP瓶颈分析

    原文: http://bhsc881114.github.io/2015/06/23/HTTP%E8%AF%B7%E6%B1%82%E7%9A%84TCP%E7%93%B6%E9%A2%88%E5%8 ...

  7. bootstrap学习笔记<五>(表单一)

    表单 bootstrap为表单提供三种样式:默认表单,水平表单,内联表单. <form class="form-horizontal" role="form&quo ...

  8. (五)stm32工程代码HardFault异常查错调试方法

    一.导致异常的原因很多,例如:直接使用未分配空间的指针.栈溢出等一场非法操作便会使程序进入HardFault异常状态.下面介绍怎么找出程序中的异常. 接下来在keil_MDK工程中,编译代码,并deb ...

  9. Java 中使用 UEditor 整理【待续。。。】

    1.简介 官网:http://ueditor.baidu.com/website/index.html 演示:http://ueditor.baidu.com/website/examples/ 2. ...

  10. 20160805_笔记本_CentOS6.4x64分区

    1.严gong 笔记本 CentOS6.4x64分区: 1.1.OS自动分区的方案: 1.2.我模仿上面的方案,自己弄的方案:(没有LVM卷组) 2.