当前位置 : 主页 > 网页制作 > Nodejs >

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

来源:互联网 收集:自由互联 发布时间:2021-06-16
使用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/j
使用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', 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();
      });
  });
假设您正在使用req.ip通过express检查ip地址(尽管其他框架可能表现相同),
使用所需的IP地址在测试中设置X-Forwarded-For标头:

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

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

app.enable('trust proxy')
网友评论