Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

request-promise 模拟登录以后,怎么拿到 set-cookie

$
0
0

rt

request 可以这样:

request.post({url: 'http://127.0.0.1:3000/users/login', form: {user: 'adminxxxx'}}, function (err, res, body) {
  console.log(res.headers['set-cookie']);
}); 

但是 request-promise 貌似只返回 body 一个参数。 此外,request.post 方法貌似不能被 bluebird.promisify。

我最终目的是得到一个能放在 async/await 里面的方法,如:

async function getCookie(req, res, next) {
	let cookie = await request(...);
	return ...;
}

除了 async 立即执行函数以外有没有别的方法:

function test() {
  return new Promise((resolve, reject) => {
	  request(url, function() {
	  	resolve(cookie);
	  });
    }).on('error', (error) => {
      reject(error);
    });
  });
};

(async () => {
  try {
    console.log(await test());
  } catch (error) {
    console.log(error);
  }
})();

Viewing all articles
Browse latest Browse all 14821

Trending Articles