码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-07-14 00:30:23      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:blog   使用   os   数据   art   问题   

 

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项目中遇到的问题总结及解决方法,布布扣,bubuko.com

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

标签:blog   使用   os   数据   art   问题   

原文地址:http://www.cnblogs.com/submerge/p/3840296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!