nodejs回调问题..不是函数

时间:2018-04-14 16:15:58

标签: node.js

我目前正在学习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')

    });
  });
});

1 个答案:

答案 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.hbsres.render将完成其余工作。