nodejsとexpressを使用してシンプルなHTMLストリーミングを行うコードがあります。最初のストリームは 3 秒で発生し、2 番目のストリームは 6 秒で発生し、最後のストリームは 9 秒で発生します。コードは Morgon ログで有効化され、応答時間を記録します。Morgon を介してログに記録される応答時間は 3 秒と表示されます (最初のストリーム応答時間を記録します)。ストリーミングが有効になっているときに完全な応答時間を取得する方法は、Morgon、nodejs、または Express にありますか? ヘルプは大歓迎です。
var express = require("express");
var bodyParser = require('body-parser');
var utf8 = require('utf8');
var axios = require('axios');
var morgan = require('morgan')
var fs = require('fs')
var path = require('path')
var app = express();
var port = 3000;
app.use(bodyParser.urlencoded({ extended: false }));
var urlencodedParser = bodyParser.urlencoded({ extended: true })
app.use(function(req, res, next) {
var decodedUrl = decodeURIComponent(req.originalUrl);
req.originalUrl = decodedUrl;
next();
});
var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' })
app.use(morgan(':method :url :response-time'))
// respond with "hello world" when a GET request is made to the homepage
app.get("/test/*/id*", urlencodedParser, function (req, res) {
let soapUIHeader = '<dummy></dummy>';
setTimeout(function() {
res.write('<div><p>Header........</p><div>');
setTimeout(function body() {
res.write('<div><p>Body........</p><div>');
setTimeout(function footer() {
res.write('<div><p>Footer........</p><div>');
res.end();
},3000)
},3000);
},3000)
});
app.listen(port, function() {
console.log("server started in port " + port);
});
module.exports = app