2014-10-16 37 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); 
    }); 
});