connect.cookieParser和connect.session

时间:2015-10-10 23:27:24

标签: node.js session-cookies connect

我是连接框架的新手。我想使用cookieParser()和会话管理。请更正以下代码以及显示此错误的原因。

var connect = require("connect");
var app = connect();
connect()
    .use(connect.cookieParser())
    .use(connect.session({ secret: 'some secret text', cookie: { maxAge:       30000}}))
    .use(function(req, res) {
        var sess = req.session,
        url = req.url.split("/");

    if (url[1] == "name" && url[2]) {
        sess.name = url[2];
        res.end("name saved: " + url[2]);
    } else if (sess.name) {
        res.write("session-stored name: " + sess.name);    
        res.end("stored for another: " + (sess.cookie.maxAge / 1000) +seconds");
    } else {
        res.end("no stored name; go to /name/{name} to save a name");
    }
}).listen(3000);

以下是显示的错误:

C:\Users\Sagar\workspace\Node_connect\public\session.js:5
    .use(connect.cookieParser())
                 ^
TypeError: undefined is not a function
    at Object.<anonymous> (C:\Users\Sagar\workspace\Node_connect\public\session.js:5:18)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

2 个答案:

答案 0 :(得分:2)

自Connect 2.21.0版(2014-06-20)以来,他们弃用了cookie-parser集成(https://github.com/senchalabs/connect/blob/master/History.md),您应该单独安装它:

npm install cookie-parser --save

然后使用它如下所示:

var connect = require('connect'),
        cookieParser = require('cookie-parser');
var app = connect()
    .use(cookieParser())
    .use(...)
...

答案 1 :(得分:1)

var express = require('express') var cookieParser = require('cookie-parser')

var app = express() app.use(cookieParser())

参考: https://www.npmjs.com/package/cookie-parser