1

我仍在使用 node.js / express.js 找到自己的脚。我想将一个休息网络服务的结果传递给另一个......或从两个网络服务功能创建一个新的路由服务......

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

例如

url:port/getMySQLRecord/:recordid

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

它接受 AJAX POST

例如

网址:端口/插入MongoDoc

函数 A 和 B 目前都作为 REST Web 服务工作......(我怎样才能最好地将 A 的结果通过管道传输到 B?)

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

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

如果这是nix,我会使用| ...

4

1 回答 1

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。

于 2013-09-10T22:15:50.003 回答