在我的项目中,我尝试使用对象的方法作为快速路由,但是this。[objectProperty]的值未定义。
这是我的代码:
function OauthFlow(provider, authorization_uri) {
return {
provider: provider
}
}
function testMethod(req, res) {
return `Provider is set to ${this.provider}`
}
twitter = new OauthFlow("twitter")
twitter.test = testMethod
const twitter_app = express()
twitter_app.use("/test", twitter.test)
exports.twitter_app = twitter_app
当我模拟来自Firebase Functions Shell的请求时,得到以下输出:
twitter.get("test")
提供商设置为未定义
这是一个类似的版本,它直接记录方法的输出而不使用express,确实在控制台中可以正确运行:
function OauthFlow(provider, authorization_uri) {
return {
provider: provider
}
}
function testMethod() {
return `Provider is set to ${this.provider}`
}
twitter = new OauthFlow("twitter")
twitter.test = testMethod
console.log(twitter.test())
此版本返回
提供商设置为Twitter