直到RxJS實現之前,我一直使用node.js。RxJS + node.js HTTP服務器實現?
這裏是我的審判代碼studying-
反應的擴展/ rxjs節點 https://github.com/Reactive-Extensions/rxjs-node
rx_http.js
(node.js中的HTTP LIB的RxJS包裝)
var Rx = require("./rx.min");
var http = require("http");
for(var k in http)
{
exports[k] = http[k];
}
exports.createServer = function()
{
var subject = new Rx.AsyncSubject();
var observable = subject.asObservable();
observable.server = http.createServer(function (request, response)
{
subject.onNext({ request:request, response:response });
subject.onCompleted();
});
return observable;
};
個
server.js
var http = require('./rx_http');
// rxServer
var serverObservable = http.createServer();
var port = 3000;
serverObservable.server.listen(port);
console.log("Server listening on port: "+port);
// HTTP request event loop function
serverObservable.subscribe(function (data)
{
var req = data.request;
console.log(req.headers);
var res = data.response;
res.writeHead(200, {'Content-Type':"text/html"});
res.end("hello world");
console.log("res content out");
});
// exceptiopn
process.on('uncaughtException', function (err)
{
console.log(['Caught exception:', err.message].join(" "));
});
的代碼結束了一次「世界你好」輸出到瀏覽器,並且RxServer停止反應,以另一接入(brwoser重載等)。
我正在學習RxJS的東西,但很少有文檔在網上找到。
告訴我代碼有什麼問題,如果你知道更好的實現,請分享。 謝謝。
我做到這一點,它提出的所有要求只是掛... – MaxWillmo