Javascript 直接从React应用程序中的Winston日志文件流
在我的节点后端,我创建了一个winston JSON日志文件(更像是一个JSON对象数组)。我有一个react前端,我想在其中实时流式传输日志文件内容。如果不通过我的后端进行管道传输,这是可能的吗?是的,您可以这样做,但这确实会降低Web服务器的性能。只有一种方法可以在不通过后端管道的情况下完成,您可以通过在特定的时间间隔向web服务器发送HEAD请求来完成 香草JavaScript代码:Javascript 直接从React应用程序中的Winston日志文件流,javascript,node.js,file,reactjs,winston,Javascript,Node.js,File,Reactjs,Winston,在我的节点后端,我创建了一个winston JSON日志文件(更像是一个JSON对象数组)。我有一个react前端,我想在其中实时流式传输日志文件内容。如果不通过我的后端进行管道传输,这是可能的吗?是的,您可以这样做,但这确实会降低Web服务器的性能。只有一种方法可以在不通过后端管道的情况下完成,您可以通过在特定的时间间隔向web服务器发送HEAD请求来完成 香草JavaScript代码: var xhr = new XMLHttpRequest(); var intervalMs = 500;
var xhr = new XMLHttpRequest();
var intervalMs = 500;
var lastTime = new Date().getTime();
var intervalObj = window.setInterval(function(){
xhr.open('HEAD', 'http://localhost:80/logfile.log');
xhr.onreadystatechange = function() {
if(this.readyState = this.DONE)
{
let lastModifiedStr = this.getResponseHeader('Last-Modified');
var lastModifiedTimeStamp = new Date(lastModifiedStr).getTime();
console.log("Last Modified",lastModifiedTimeStamp)
if(lastTime < lastModifiedTimeStamp)
{
lastTime = lastModifiedTimeStamp;
// Update your Redux State here and catch it with React and Update your UI
}
}
};
xhr.send()
}, intervalMs);
var xhr=new-XMLHttpRequest();
var区间=500;
var lastTime=new Date().getTime();
var intervalObj=window.setInterval(函数(){
xhr.open('头部','http://localhost:80/logfile.log');
xhr.onreadystatechange=函数(){
if(this.readyState=this.DONE)
{
让lastModifiedStr=this.getResponseHeader('Last-Modified');
var lastModifiedTimeStamp=新日期(lastModifiedStr).getTime();
log(“上次修改”,lastModifiedTimeStamp)
if(lastTime
您是否希望其他没有该文件的人看到它?是的,您是对的,如果不通过后端管道传输它,这是不可能的。