Express.js和request:标题意外重置自己

时间:2015-01-05 10:45:26

标签: node.js authentication express request request-headers

我正在使用express来请求与API通信;一些控制器文件使用导出,所以我可以保持路径文件很漂亮。

module.exports = function(app){

  var moment = require('moment'),
      request = require('request'),
      auth = require('../auth/auth.js')(app),
      apiUrl = process.env.API_URL;

  return {

    addProduct: function addProduct(req,res) ...

request.defaults在auth文件中设置,login在那里调用一个函数来设置标题以在整个应用程序中验证用户。

auth.setToken = function(token, type, access) {
  auth.request = request.defaults({
    headers: {
      'x-access-token': token,
      'x-access-type': type,
      'x-access-level': access,
    }
  });
};

然后使用带有一些mod的请求。

auth.request.get(apiPath, function(err, apiRes) {
  res.render(renderView, {
    items: items,
  });
});

“用户”文件中的所有内容都运行良好,但我刚刚添加了几个其他控制器文件,并且由于某种原因,这些文件中的每个函数都会重置标头(因此我的身份验证会丢失)。我可以将'用户'文件复制并粘贴到其他文件中并遇到同样的问题,或者我可以将我想要的其他文件放回到'用户'文件中,它再次正常工作。我无法弄清楚我做错了什么,但如果我只有一个档案......任何想法都会非常混乱?

1 个答案:

答案 0 :(得分:0)

想出它 - 这是一个变量问题没有像我想象的那样在控制器文件中传递,所以我创建了一个新的函数来将会话中的令牌复制回头部并且所有这些都被解析了。