私はいくつかのnode.jsコードで手を汚そうとしています。イベント、コールバック、および非同期技術の理論は理解していますが、「正しい方法」で実際にコードを生成するのが簡単だという意味ではありません。
以下は、私の (実際の) ミドルウェアの例です。単純な HTTP サーバーがリクエストをリッスンし/get
、バックエンドにクエリを実行して、そこからのデータをクライアントに提示します。
var http = require('http')
var https = require('https')
var url = require('url')
var backendOptions = {
port: 1414,
hostname: 'data.backend.com',
path: '/bulk',
auth: 'user:$ecret'
}
var backendGet = function(callback) {
https.get(backendOptions, function(res) {
var content = ''
res.on('data', function(chunk) {
content += chunk
})
res.on('end', function() {
callback(content)
})
})
}
var server = http.createServer(function(req, res) {
switch(url.parse(req.url).pathname) {
case '/get':
backendGet(function(content) {
res.writeHead(200, {'Content-Type': 'text/plain'})
res.write(content)
res.end()
})
break
default:
res.writeHead(200, {'Content-Type': 'text/html'})
res.write('<p>It works!</p>')
res.end()
}
}).listen(8080, 'localhost')
このコードは機能しますが、これは node.js でコードを記述する方法ですか? バックエンドからのデータが利用可能になったときにクライアントを提供する必要があるため、読み取るバックエンド データがなくなるとすぐにオブジェクトbackendGet()
を操作するコールバックとして関数を呼び出しています。res
一般的なコメントや批評も大歓迎です!
アレックス