我已经编写了以下API包装并希望将其输出为快速视图。从API获取数据并将其输出为快速视图
我的API调用的文件exchanges.js我用下面的函数来getQuotes
:
module.exports = function container(get, set, clear) {
function publicClient() {
if (!public_client) {
public_client = new KrakenClient()
}
return public_client
}
var exchange = {
name: 'kraken',
historyScan: 'forward',
makerFee: 0.16,
takerFee: 0.26,
// The limit for the public API is not documented, 1750 ms between getTrades in backfilling seems to do the trick to omit warning messages.
backfillRateLimit: 1750,
getQuote: function(opts, cb) {
var args = [].slice.call(arguments)
var client = publicClient()
var pair = joinProduct(opts.product_id)
client.api('Ticker', {
pair: pair
}, function(error, data) {
if (error) {
if (error.message.match(recoverableErrors)) {
return retry('getQuote', args, error)
}
console.error(('\ngetQuote error:').red)
console.error(error)
return cb(error)
}
if (data.error.length) {
return cb(data.error.join(','))
}
cb(null, {
bid: data.result[pair].b[0],
ask: data.result[pair].a[0],
})
})
},
}
return exchange
}
我试图通过快速通道调用getQuotes
- ticker.js
:
var express = require('express');
var router = express.Router();
var kraken = require("../exchanges/kraken/exchange")
router.get('/', function(req, res, next) {
var tick = kraken.exchange.getQuote;
res.send('get ticker: ' + tick);
});
module.exports = router;
然而,当打开路由时,我收到以下错误消息:
Cannot read property 'getQuote' of undefined
TypeError: Cannot read property 'getQuote' of undefined at /home/ubuntu/workspace/nodejs/routes/ticker.js:7:31 at Layer.handle [as handle_request] (/home/ubuntu/workspace/nodejs/node_modules/express/lib/router/layer.js:95:5) at next (/home/ubuntu/workspace/nodejs/node_modules/express/lib/router/route.js:137:13) at Route.dispatch (/home/ubuntu/workspace/nodejs/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/home/ubuntu/workspace/nodejs/node_modules/express/lib/router/layer.js:95:5) at /home/ubuntu/workspace/nodejs/node_modules/express/lib/router/index.js:281:22 at Function.process_params (/home/ubuntu/workspace/nodejs/node_modules/express/lib/router/index.js:335:12) at next (/home/ubuntu/workspace/nodejs/node_modules/express/lib/router/index.js:275:10) at Function.handle (/home/ubuntu/workspace/nodejs/node_modules/express/lib/router/index.js:174:3) at router (/home/ubuntu/workspace/nodejs/node_modules/express/lib/router/index.js:47:12)
任何建议如何正确调用getQuotes
变量?
感谢您的回复!
运行后,我得到了单独的错误'ReferenceError:publicClient未定义',但这是一个不同的问题 –
Thx。我添加了上面的'publicClient'方法。但是,我只能得到'未定义'的输出并且没有定价数据。任何建议? – mrquad
上例中'public_client'现在没有定义。此外,它还包括稍后创建'KrakenClient'和API调用,所以我认为您需要手动调试它 –