Cookie not sending with request.js

cookies, node.js, request

Solution

Requests are asynchronous, so your two requests are made at the same time (before your cookieJar is set up). Try this instead:

var request = require('request')

request({
    method: 'POST',
    uri: 'http://127.0.0.1:5984/_session',
    form: {
        name: 'test',
        password: 'test123'
    }

},
function(err, res, body) {
    if (err) { return console.log(err) };

    console.log(res.statusCode);
    console.log(res.headers);
    console.log(body);

    var myCookie = request.cookie(res.headers['set-cookie'][0]);

    var cookieJar = request.jar();
    cookieJar.setCookie(myCookie, 'http://127.0.0.1:5984/_session');

    request({
        method: 'GET',
        uri: 'http://127.0.0.1:5984/db',
        jar: cookieJar
    },
    function(err, res, body) {
        if (err) { return console.log(err) };

        console.log(cookieJar);
        console.log(res.statusCode);
        console.log(res.headers);
        console.log(body);
    });
});

Problem

So I had a API up and running however I decided to switch from using nano to just using request. However I for some reason can't seem to get the cookie to send back to the server now. Here's an example of the code I've been testing. ``` var request = require('request') var cookieJar = request.jar(); var myCookie; request({ method: 'POST', uri: 'http://127.0.0.1:5984/_session', form: { name: 'test', password: 'test123' } }, function(err, res, body) { if (err) { console.log(err) }; console.log(res.statusCode); console.log(res.headers); console.log(body); myCookie = request.cookie(res.headers['set-cookie'][0]); cookieJar.setCookie(myCookie, 'http://127.0.0.1:5984/_session'); }); request({ method: 'GET', uri: 'http://127.0.0.1:5984/db', jar: cookieJar }, function(err, res, body) { if (err) { console.log(err) }; console.log(cookieJar); console.log(res.statusCode); console.log(res.headers); console.log(body); }); ``` As you can see I'm able to get and set the cookie however I'm not authorized on the GET request. I can't seem to figure out what I'm doing wrong. Any advice or help would be greatly appreciated.

Original source