我使用cryptocompare npm包时有以下功能:
getPrice: function(coin){
cc.price(coin, 'USD')
.then(prices => {
console.log(prices);
return prices;
}).catch(console.error)
}
// https://github.com/markusdanek/crypto-api/blob/master/server/helper/cryptocompare.js
现在我想设置一台Express服务器来打开http://localhost:9000/current并显示当前的“价格”。
所以我的控制器看起来像这样:
module.exports = {
getCurrentPrice: function(req, res, next) {
getPrice('ETH', function(price);
}
};
// https://github.com/markusdanek/crypto-api/blob/master/server/controllers/CryptoController.jshttps://github.com/markusdanek/crypto-api/blob/master/server/controllers/CryptoController.js
我的路线:
var controllers = require('../controllers'),
app = require('express').Router();
module.exports = function(app) {
app.get('/current', controllers.crypto.getCurrentPrice);
};
当我现在打开http://localhost:9000/current时,我只在我的控制台中获得当前价格,但不在我的浏览器中。
如何设置对值的响应?
我尝试了但失败了:
module.exports = {
getCurrentPrice: function(req, res, next) {
getPrice('ETH', function(price){
res.status(200).json(price);
});
}
};
我猜这是调用回调的错误方法..我是否必须修改我的帮助函数或其他任何东西?
我的项目也在Github上进一步参考:https://github.com/markusdanek/crypto-api
答案 0 :(得分:1)
可以帮到你
module.exports = {
getCurrentPrice: function(req, res, next) {
cc.price('ETH', 'USD')
.then(prices => {
console.log(prices);
res.json(prices)
})
.catch(err=>{
console.error(err)
return next(err);
})
}
};