node开发指南中的microblog项目中遇到的问题总结及解决方法

1      使用connect-mongdo时,报错:Cannot read property ‘Store‘ of undefined

解决: require(‘connect-mongo‘)的时候加一个参数express,如下:

var express = require(‘express‘);

var MongoStore = require(‘connect-mongo‘)(express),

2      使用app.use(express.router(routers)) 提示 has no method ‘router‘

解决:原因可能是express 3.0后没有了router这个方法,继续使用之前的app.use(app.router),在app.js末尾加入:

routers(app);

(这样routes/inndex.js 可以继续使用书中的书写格式.)

3         express3.x不支持layout布局视图

解决方法:

安装express-partials组件

var partials = require(‘express-partials‘);

app.use(partials());

4  helpers 和 dynamicHelpers 方法已经不能用了,如下:

app.helpers({

inspect: function(obj) {

return util.inspect(obj, true);

}

});

app.dynamicHelpers({

headers: function(req, res) {

return req.headers;

}

});

解决方法:app.use(function(req,res,next){

res.locals.user = req.session.user;

var err = req.flash(‘error‘);

var succ = req.flash(‘success‘);

console.log(err);

res.locals.error = err.length ? err : null;

res.locals.success = succ.length ? succ : null;

next();

});

注意:这个一定要放置在app.use(app.router);前面

5 req.flash 方法不能用,解决办法如下:

运行>npm install connect-flash 安装组件

并在app.js中加入:

var flash = require(‘connect-flash‘);

app.use(flash());

6注意req.flash()方法设置的值,只能获取一次。

比如: req.flash(‘error’,’aaabbb’);

Req.flash(‘error’)

在次获取req.flash(‘error’)会得到空值

所以模版渲染的时候就得不到数据。正确做法应该先用一个过渡变量拷贝一份

res.locals.success=req.flash(‘success‘).length?req.flash(‘success‘):null;

next();

});

node开发指南中的microblog项目中遇到的问题总结及解决方法

时间: 2024-08-30 20:24:39

node开发指南中的microblog项目中遇到的问题总结及解决方法的相关文章

phonegap 开发指南系列(3) ----在Eclipse中Android开发环境搭建

  前提条件:已在Eclipse中安装好Android SDK 和 ADT. 1.下载PhoneGap,解压. 2.用Eclipse新建一个安卓项目. 3.将phoneGap解压包里的Android文件夹下的phonegap-1.0.0.js 复制到安卓项目的 /assets/www/ 目录下. 4.将phoneGap解压包里的Android文件夹下的phonegap-1.0.0.jar 复制到安卓项目的 /libs 目录下. 5.在/assets/www/目录下新建一个index.html,内

IOS开发中 常常遇到的遇到的警告,错误汇总,解决方法

从sdk3.2.5升级到sdk 5.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了. 1,警告:"xoxoxoxo"  is deprecated 解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可. 2,警告:Declaration of "struct sockaddr" will not be visible outside of this function 解决办法:在你的开源.m文件中添加 #import <netinet/in.

problem中Project&#39;XX&#39;is missing required library:&#39;[路径]\XXX.jar&#39;解决方法

起因: 今天在接手同事做的一个项目时,发现用Myeclipse部署后,项目里有不少网页出现红叉,逐个修改完后,项目理应不再显示红叉,但奇怪的是,项目所有的子文件都没错误,项目根目录却有个红叉...>_<!同时Myeclipse下的problem中出现一堆error,提示:Project ‘XXX’ is missing required library:'[path] \ XXX.jar'. 解决: 出现这种情况的原因是:在你项目的build path Library中存在重复并且冲突或者地址

ECLIPSE中部署工程报“Undefined exploded archive location”错误的解决方法。

错误信息为:Undefined exploded archive location 原因:在工程转移过程中,导致工程的配置文件出错: 解决方法:           1.在工程目录下的.mymetadata文件中可能webrootdir被改无效了(把下面内容拷到你的.mymetadate文件中的相应位置上):或者有可能少了这context-root这个属性:添加上这个属性即可,内容如下:             context-root="/上面的name属性值"          

php 字符串中的\n换行符无效、不能换行的解决方法

php 字符串中的\n换行符无效.不能换行的解决方法 程序的中的换行符\n会直接输出,无法正确换行,解决方法是把单引号改为双引号 aa

rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

rpm包安装过程中依赖问题"libc.so.6 is needed by XXX"解决方法 折腾了几天,终于搞定了CentOS上的Canon LBP2900打印机驱动.中间遇到了一些问题,主要是安装rpm包出现的依赖问题,费尽周折总算是解决了.现在简单总结一下. 首先说明一下,我用的CentOS版本是6.6,64位.打印机驱动程序是两个rpm安装包:cndrvcups-common-2.60-1.x86_64.rpm和cndrvcups-capt-2.60-1.x86_64.rpm.

在INF中找不到所需的段落 错误的解决方法

由于同事在使用刷卡机程序的时候,不小心删除了系统驱动程序,导致刷卡机识别不了,安装不了驱动,一直提示:在INF中找不到所需的段落,如下图所示: 同事联系厂家技术支持,弄了半天,没弄好,最后让重装操作系统,太坑了,同事不想重装系统,所以就找到了我,了解了相关现象后-- 我的解决方法如下: 进入 C:\Windows 找到 setupapi.log 文件,该日志文件会记录某些安装错误信息:拉到最后一行,查找类似于如下错误的信息: #I140 正在安装设备类别: "MultiportSerial&qu

【python】Python3中出现&#39;gbk&#39; codec can&#39;t encode characte的成功解决方法?

亲身测试,所遇问题完全解决!2018/07/08 21:37 环境:windows,Pycharm,python3.6.2 使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 这个问题. 网络上有很多类似的文件讲述如何解决这个问题,但是无非就是encode,decode相关的,这是导致该问题出现的真正原因吗

SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法

原文:SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 按照ASCII码, SELECT char(64) 例如64 对应 @,则 SELECT REPLACE('[email protected]', CHAR(64), 'kk'); 则结果为 abckkqq.com 依此类推, 去掉其他特殊符号,参考ASCII码对照表, 去掉tab符号为 select REPLACE('要替换的字符或列名',char(9),'替换的目标字符') 去掉空格符号为 select REPLACE('要