node.js – 在supertest请求中设置ip

使用supertest,我可以进行resquest以测试我的node.js应用程序

var request = require('supertest');
var api = require('../server').app;

  ...

  it('json response',function(done){

    request(api)
      .get('/api')
      .set('Accept','application/json')
      .expect('Content-Type',/json/)
      .end(function(err,res){
        done();
      });
  });

如何设置特定的ip来发出测试请求?

it('ip access denied',/json/)
      // set specific ip
      .end(function(err,res){
        res.body.message.should.eql('Access denied');
        done();
      });
  });

解决方法

假设您正在使用req.ip通过express检查ip地址(尽管其他框架可能表现相同),
使用所需的IP地址在测试中设置X-Forwarded-For标头:

.set('X-Forwarded-For','192.168.2.1')

您可能需要在服务器中启用trust proxy选项:

app.enable('trust proxy')

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...