我正在尝试使用typescript添加一个属性来表示来自中间件的请求对象.但是,我无法弄清楚如何向对象添加额外的属性.如果可能的话,我宁愿不使用括号表示法.
我正在寻找一种解决方案,允许我写一些类似的东西(如果可能的话):
app.use((req, res, next) => {
req.property = setProperty();
next();
});
Run Code Online (Sandbox Code Playgroud) 我喜欢使用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)
我尝试了各种不同的方法,但没有运气。
express ×1
javascript ×1
mocha.js ×1
node.js ×1
superagent ×1
supertest ×1
testing ×1
typescript ×1