这里发生了很多事情,所以我将把它简化为一个伪示例。在这里暂时忘掉安全和诸如此类的事情。关键是要了解功能。
假设我正在使用 node.js 运行本地 Web 服务器来开发网站。在网站中,用户应该能够创建一个新帐户。账户信息将通过 ajax 提交到节点服务器。然后,我需要节点服务器接收传入的请求并将其传递给另一台服务器,让我可以访问数据库。例如,CouchDB。
所以这是我想要发生的一个伪示例。
在客户端的浏览器中:
$.ajax({
url: './database_stuff/whatever', // points to the node web server
method: 'POST',
data: {name: 'Billy', age: 24}
});
在 Node Web 服务器中:
var http = require('http'),
dbServer = 'http://127.0.0.1:5984/database_url';
http.createServer(function (req, res) {
/* figure out that we need to access the database then... */
// magically pass the request on to the db server
http.magicPassAlongMethod(req, dbServer, function (dbResponse) {
// pass the db server's response back to the client
dbResponse.on('data', function (chunk) {
res.end(chunk);
});
})
}).listen(8888);
有道理?基本上将原始请求传递到另一台服务器然后将响应传递回客户端的最佳方式是什么?