Javascript 无法获取对象值并在类中定义常量和静态变量
我有以下代码:Javascript 无法获取对象值并在类中定义常量和静态变量,javascript,jquery,node.js,ecmascript-6,koa,Javascript,Jquery,Node.js,Ecmascript 6,Koa,我有以下代码: 'use strict'; const Request = require('request'); class CryptoKetHandlers { static async coins(ctx) { try { var CONTENT_TYPE = 'application/json'; console.log(`## Hitting cryptoket coins api for coins li
'use strict';
const Request = require('request');
class CryptoKetHandlers {
static async coins(ctx) {
try {
var CONTENT_TYPE = 'application/json';
console.log(`## Hitting cryptoket coins api for coins list ...`);
var res = await Request.get({
url: 'https://api.cryptoket.io/info/currencies',
headers: {
'Content-Type': CONTENT_TYPE,
}
}, (err, res, body) => {
//console.log(`Inside response ... res: ${res} err: ${err} body: ${body}`);
if (err) {
console.log(`#### ERROR :: API RESP :: CryptoKetHandlers :: coins :: exception :: ${err}`);
ctx.throw(500);
} else {
let res = {};
res.body = body;
res.status = 200;
return res;
}
});
} catch (ex) {
console.log(`#### ERROR :: CryptoKetHandlers :: coins :: exception :: ${ex}`);
ctx.throw(500);
}
console.log(`######### Final Response :: status - ${res.status} body - ${res.body} res :: ${res}`);
ctx.body = res;
ctx.status = 200;
}
}
module.exports = CryptoKetHandlers;
我从java背景和新到膝关节炎和NoDEJs,想知道我是否可以实现以下的事情:
- 从Request.get和
在其他地方处理它(在另一个类函数中)- 将所有可重用变量类设置为级别,这样就不需要再次定义
- 如果您有一些建议,使我的代码更加健壮和干净
Request.get()
wait表达式导致异步函数执行暂停,直到解决了一个承诺(该承诺已实现或被拒绝),并在实现后恢复异步函数的执行恢复时,等待表达式的值是已兑现承诺的值。
其次,您意外地将返回值res
替换为(err,res,body)=>{}
中的另一个res
。相反,我们可以将返回值作为普通对象返回
做出这些改变
'use strict';
let request = require('request');
const CONTENT_TYPE = 'application/json';
function makeRequest() {
return new Promise((resolve, reject) => {
request.get({
url: 'https://api.cryptoket.io/info/currencies',
headers: {
'Content-Type': CONTENT_TYPE,
}
}, (err, res, body) => {
if (err) {
console.log(`#### ERROR :: API RESP :: CryptoKetHandlers :: coins :: exception :: ${err}`);
return reject(err);
}
// return as object
return resolve({
body: body,
status: 200
});
});
});
}
class CryptoKetHandlers {
static async coins(ctx) {
try {
console.log(`## Hitting cryptoket coins api for coins list ...`);
let res = await makeRequest();
console.log(`######### Final Response :: status - ${res.status} body - ${res.body} res :: ${res}`);
} catch (ex) {
console.log(`#### ERROR :: CryptoKetHandlers :: coins :: exception :: ${ex}`);
}
}
}
因为我将var
替换为let
。我已将最终日志记录移到try
块中
如何将CONTENT_TYPE声明为类变量应为const&static
有关建议现正进行中。您可以查看更多信息。@ShivangAgarwal这是主观的;)