2014-10-16 27 views
0

我试图将两个单独的示例一起破解,我让它们单独工作,但我无法将我的头部围绕如何组合它们。现在我已经浪费了数小时的时间来获得如此基本的工作。ExpressJS API router.get外部函数

我有运行API的ExpressJS。测试消息起作用。

// test route to make sure everything is working (accessed at GET http://localhost:8080/api) 
router.get('/', function(req, res) { 
    res.json({ message: 'This is a test message' });  
}); 

我想显示的消息,而不是下面的输出,:这是一封测试邮件

serverClient.call('version', {}, function (err, res) { 
    console.log('Server Version: %j', res.version); 
}); 

任何人都可以点我在正确的方向有清楚如何选择或让我看看代码?

+1

'res.json({消息: '服务器版本:' + res.version});' – tymeJV 2014-10-16 13:31:00

+0

它在console.log中提供服务器版本,但不在消息中。 – 2014-10-16 13:41:50

+0

var router = express.Router(); \t \t \t \t router.get( '/',函数(REQ,RES){ ServerClient.call( '版本'{}函数(ERR,RES){ 的console.log(“服务器版本:% j; res.version); }); res.json({message:'Server Version:'+ res.version}); }); – 2014-10-16 13:42:46

回答

1

只需将该代码移动到您的路由处理程序中即可。例如:

router.get('/', function(req, res) { 
    serverClient.call('version', {}, function (err, result) { 
    if (err) 
     return res.json({ error: err }); 
    res.json({ version: result.version }); 
    }); 
}); 
+0

这工作。谢谢,我现在去研究它 – 2014-10-16 13:46:06

0

确保您res变量有不同的名称,否则会发生碰撞

// test route to make sure everything is working (accessed at GET http://localhost:8080/api) 
router.get('/', function(req, res1) { 
    res1.json({ message: 'This is a test message' });  
    serverClient.call('version', {}, function (err, res2) { 
     console.log('Server Version: %j', res2.version); 
    }); 
});