zoukankan      html  css  js  c++  java
  • 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();

    });

  • 相关阅读:
    jquery中attr和prop的区别
    Server.MapPath用法
    ERP登录(八)
    ViewBag、ViewData和TempData的使用和区别
    ERP权限系统(七)
    C#泛型(三)
    ERP员工入登记查询(六)
    ERP员工入职登记(五)
    MVC学习IIS的不同版本(一)
    兔子谋杀案
  • 原文地址:https://www.cnblogs.com/submerge/p/3840296.html
Copyright © 2011-2022 走看看