如何访问节点js上的头信息?

时间:2016-01-27 09:38:00

标签: javascript node.js cookies socket.io

如何阅读节点js 上的 cookie

var socket  = require( 'socket.io' );
var express = require('express');
var app     = express();
var server  = require('http').createServer(app);
var io      = socket.listen( server );
var port    = process.env.PORT || 8000;
var mysql = require('mysql');


function parseCookies (request) {
    var list = {},
        rc = request.headers.cookie;

    rc && rc.split(';').forEach(function( cookie ) {
        var parts = cookie.split('=');
        list[parts.shift().trim()] = decodeURI(parts.join('='));
    });

    return list;
}


 http.createServer(function (request, response) {
  // To Read a Cookie
    var user_id= cookies.realtimeid;
    console.log(user_id);
});




server.listen(port, function () {
  console.log('Server listening at port %d', port);
  var cookies = parseCookies();
  console.log(cookies);

});

我是节点和套接字的新手。我必须读取由 codeignter设置的cookie值。 如何从 server.listen parseCookies 发送标头请求。

1 个答案:

答案 0 :(得分:4)

我看到你正在使用快递,所以我建议你使用非常着名的模块。 cookie-parser https://www.npmjs.com/package/cookie-parser

<强>安装

npm install cookie-parser

如何使用

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

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

所以基本上在你的mysql要求之后你可以做app.use(cookieParser())

然后在req变量中的每个请求中,您都会找到req.cookies的Cookie 示例

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

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

app.get('/', function(req, res) {
  console.log("Cookies: ", req.cookies)
})

app.listen(8080)