【问题标题】:Are the req and res objects somehow accessible globally in NodeExpress?在 Node Express 中,req 和 res 对象是否可以全局访问?
【发布时间】:2013-05-17 07:30:40
【问题描述】:

req.session.username = user.username;

我正在使用 supertest 来测试路由处理。在我的登录处理代码中,如果用户成功登录,我有以下内容 -

req.session.username = user.username;

但在超测回调函数中,我无权访问 req 对象。

request(app)
          .post('/login')
          .send({username: 'dummy_username', password: 'valid_password'})
          .end(function(err, res){
            if (err) { return done(err); }
            expect(err).toBe(null);
            expect(res.status).toEqual(200);
            done();
          });

我想添加类似expect(req.session.username).toBe('dummy_username') 的内容,但显然我不能在 req 对我不可用时执行此操作。那么有没有办法引用 req 对象呢?

【问题讨论】:

    标签: node.js express supertest superagent


    【解决方案1】:

    Supertest 仅用于测试响应,因为测试请求(及其服务器端操作)将测试实现细节而不是行为。 supertest 不是这项工作的正确工具。您可以为某些服务器端功能编写纯单元测试,或者您可以让/login 路由在响应正文中包含用户信息(这是典型的),并让 supertest 验证信息是否与请求中的内容匹配。

    【讨论】:

      猜你喜欢
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2011-06-09
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      相关资源
      最近更新 更多