Javascript Node.js返回res

Javascript Node.js返回res,javascript,node.js,Javascript,Node.js,我必须如何修改下面的代码才能使rates:sayHello()正常工作? 如果我调用rates:testFunction(),它可以工作,并且console.log(res);在sayHello中,它也起作用。谢谢 exports.getRates = (req, res) => { res.render('riscalc/rates', { title: 'Riscalc', rates: sayHello() });

我必须如何修改下面的代码才能使rates:sayHello()正常工作? 如果我调用rates:testFunction(),它可以工作,并且console.log(res);在sayHello中,它也起作用。谢谢

    exports.getRates = (req, res) => {
      res.render('riscalc/rates', {
        title: 'Riscalc',
        rates: sayHello()

      });
    };

    function testFunction() {
      return 23;
    }


    function sayHello() {
      client.invoke('s_hello', 'hello', (error, res, more) => {
        if (error) {
          console.error(error);
        } else {
                // console.log(res);
          return res;
        }
        if (!more) {
          console.log('Done.');
        }
      });
    }

不确定你到底想用代码实现什么。但是,假设
client.invoke
的回调只调用一次,然后在
sayHello
函数中使用“callback”函数,以下代码应该可以工作:

exports.getRates = (req, res) => {

    sayHello(function (err, val) {
        res.render('riscalc/rates', {
            title: 'Riscalc',
            rates: val
        });
    });

};

function testFunction() {
    return 23;
}


function sayHello(callback) {
    client.invoke('s_hello', 'hello', (error, res, more) => {
        if (error) {
            callback(error);
        } else {
            // console.log(res);
            callback(null, res)
        }
        if (!more) {
            console.log('Done.');
        }
    });
}

太好了,行得通。谢谢我一直在使用回调函数。client.invoke是一个zerorpc调用。const zerorpc=require('zerorpc');const client=new zerorpc.client();client.connect('tcp://127.0.0.1:4242');投反对票的原因是什么?对不起,点击错误。希望你能纠正:-)我不能,当点击向上箭头时,什么也没发生。