首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在supertest请求中设置ip

在supertest请求中设置ip
EN

Stack Overflow用户
提问于 2014-12-19 02:37:42
回答 2查看 4.3K关注 0票数 9

使用supertest,我可以请求测试我的node.js应用程序

代码语言:javascript
复制
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来发起测试请求?

代码语言:javascript
复制
  it('ip access denied', function(done){

    request(api)
      .get('/api')
      .set('Accept', 'application/json')
      .expect('Content-Type', /json/)
      // set specific ip
      .end(function(err, res){
        res.body.message.should.eql('Access denied');
        done();
      });
  });
EN

回答 2

Stack Overflow用户

发布于 2016-01-04 16:58:47

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

代码语言:javascript
复制
.set('X-Forwarded-For', '192.168.2.1')

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

代码语言:javascript
复制
app.enable('trust proxy')
票数 8
EN

Stack Overflow用户

发布于 2014-12-19 02:42:19

您可以设置通常包含IP地址、Remote-AddrX-Http-Forwarded-For的报头。您的应用程序可能正在检查这两个标头中的一个或两个以确定IP地址。

代码语言:javascript
复制
.set('Accept', 'application/json')
.set('Remote-Addr', '192.168.2.1')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27553441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档