gpt4 book ai didi

javascript - 在 JavaScript 类中使用命名空间

转载 作者:行者123 更新时间:2023-12-04 17:05:22 24 4
gpt4 key购买 nike

我正在为 RESTful API 构建客户端,在 API 中有一些具有相同功能的模块,例如 GetVersion将返回特定模块的版本。

https://example.com/core/GetVersion -> 1.1
https://example.com/auth/GetVersion -> 1.8
有多个具有相同功能/端点的模块。
我想知道如何将它实现到我正在构建的 API 类中,
我尝试将模块的所有函数都输入到命名空间中,但是这些函数无法访问命名空间之外的方法和属性。
class API {
constructor(config) {
this.user_id = config.user_id
this.password = config.password
this.basePath = `https://${config.server}/`
this.instance = axios.create({
httpsAgent: new https.Agent({
rejectUnauthorized: false
})
});
this.authToken = undefined
}

/******************/
/* Helper Methods */
/******************/

request(endpoint, body, config) {
const url = this.basePath + endpoint
config.headers = {
"Accept": "application/json"
}

// all requests are POST requests
return this.instance.post(url, body, config)
.then(res => {
return res.data
})
.catch(function (error) {
console.error(error);
});
}


/*****************/
/* Core Services */
/*****************/
core = {
getVersion() {
return this.request('core-service/getVersion', {}, {}).then(res => {
console.log(res)
})
}
}


/*****************/
/* Auth Services */
/*****************/
auth = {
getVersion() {
return this.request('auth-service/getVersion', {}, {}).then(res => {
console.log(res)
})
}
}

}

const api_client = new API({
user_id: 'admin',
password: 'admin',
server: 'example.com'
})

api_client.core.getVersion()
api_client.auth.getVersion()
但我得到了错误
return this.request('core-service/getVersion', {}, {}).then(res => {
^
TypeError: this.request is not a function
为了在同一个类中获得不同的命名空间,使用的最佳实践是什么?

最佳答案

我将命名空间中的方法更改为

getVersion: () => {***}
现在可以使用了。

关于javascript - 在 JavaScript 类中使用命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68441843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com