我目前正在学习NodeJS并开发迷你应用程序,试图理解回调。但是我一直收到错误:
callback(undefined,price);
^TypeError: callback is not a function
这是我的代码:
var getCoin = (coin, callback) => {
request({url:`https://https://rest.coinapi.io/${coin}&ssr=USD`,
json: true
}, (error, response, body) => {
if(error){
callback("error");
}
else if (response.statusCode == 200) {
let price = body.RAW[coin].USD.PRICE;
callback(undefined,price);
}
})
};
app.get('/', (req, res) => {
coin.getCoin('BTC', ()=> {
res.render('index.hbs', {
coin:'Bitcoin',
price: coin.getCoin('BTC')
});
});
});
答案 0 :(得分:0)
试试这段代码:
app.get('/', (req, res) => {
coin.getCoin('BTC', (err, price)=> {
res.render('index.hbs', {
coin:'Bitcoin',
price: price
});
});
});
我假设coin.getCoin
接受两个参数,第二个参数是回调,它本身需要接受args才能正常工作。现在在app.get('/'
中,您调用了coin.getCoin
并传递了一个匿名函数,如果coin.getCoin
正确完成其工作,price
将具有最终传递给index.hbs
,res.render
将完成其余工作。