相关疑难解决方法(0)

使用Typescript扩展Express Request对象

我正在尝试使用typescript添加一个属性来表示来自中间件的请求对象.但是,我无法弄清楚如何向对象添加额外的属性.如果可能的话,我宁愿不使用括号表示法.

我正在寻找一种解决方案,允许我写一些类似的东西(如果可能的话):

app.use((req, res, next) => {
    req.property = setProperty(); 
    next();
});
Run Code Online (Sandbox Code Playgroud)

node.js express typescript

78
推荐指数
20
解决办法
3万
查看次数

扩展超级测试

我喜欢使用SuperTest来处理我的身份验证系统,如下所示:

    const request = require('./valid_access_token')(require('supertest'));

    request(app)
    .get('/v1/bots')
    .valid_token()
    .expect('Content-Type', /json/)
    ...
Run Code Online (Sandbox Code Playgroud)

valid_token() 将插入有效的访问令牌

    module.exports = function (Request) {

      const Token = require('../../../app/v1/models/loader')('token');
      const UserFactory = require('../fixtures/user');

      Request.prototype.valid_token = function()
      {

        return UserFactory.createAsync('user')
        .then(function(user){
            return new Token({username: user.username}).createWeeklyAsync()
            .then(function(userToken){
                this.set("access-token",userToken[0].token);
                return this;
            })       
        })     
       }        
       return Request;
    }     
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我收到此错误:

TypeError: request(...).get(...).valid_token is not a function
Run Code Online (Sandbox Code Playgroud)

我尝试了各种不同的方法,但没有运气。

javascript testing mocha.js superagent supertest

5
推荐指数
1
解决办法
1062
查看次数