将express.js路由函数的结果传递给另一个路由函数

时间:2013-09-10 21:45:19

标签: node.js rest express

我仍在使用node.js / express.js找到我的脚。我想将一个休息Web服务的结果传递给另一个...或者从两个Web服务函数创建一个新的路由服务......

函数A连接到mysql并构建一​​个json对象

e.g。

URL:端口/ getMySQLRecord /:的recordId

function B将新文档(JSON对象)添加到mongoDB集合

它接受AJAX POST

e.g。

URL:端口/ insertMongoDoc

功能A和B当前都作为REST Web服务工作......(我怎样才能最好地将A的结果传递给B?)

HTTP客户端调用A并将结果传递给B似乎效率低下。

我的意思是当服务器已经拥有对象数据时,使用2 x带宽似乎不是最佳选择。

如果这是nix我将使用| ......

1 个答案:

答案 0 :(得分:1)

//pseudocode loadRecord middleware just queries mysql for req.params.recordid
// and stores the result as req.body, then calls next()

//storeReqDotBodyInMongo just takes req.body and does a mongo insert, then calls next()

//sendResponse is just res.send(req.body)


app.get('/getMySQLRecord/:recordid', loadRecord, sendResponse);
app.post('/insertMongoDoc', express.bodyParser(), storeReqDotBodyInMongo, sendResponse);
app.get('/getMySQLAndInsertMongo/:record', loadRecord, storeReqDotBodyInMongo, sendResponse);

注意连接中间件与unix管道的相似性。他们使用req / res / next来代替stdio。