簡體   English   中英

使用nodeJS向JSON文件寫入數據耗時太長

[英]Writing data to JSON file using nodeJS takes too long

我正在創建一個 function 來計算元素的點擊次數,並將它們放入 JSON 文件中

const fs = require('fs');
const file = fs.readFileSync('public/js/count.json');
const Words = JSON.parse(file);

const express = require('express');
const app = express();
app.listen(process.env.PORT || 3000, () => console.log('we are listeining'));
app.use(express.static('public'));
app.use(express.json({ limit : '1mb' })); 

app.get('/add/:word', addWord);

function addWord(request, response) {
  var data = request.params;
  var word = data.word;
  var reply;
  var found = false;
  for (i = 0; i < Words.length; i++){
    if (Words[i].type == word){
      Words[i].count++;
      found = true;
      break;
    }
  }

if (!found) {
  Words.push({"type": word , "count": 1});
}

  var x = JSON.stringify(Words, null, 2);
  fs.writeFile('public/js/count.json', x, finished);

  function finished(){
    console.log('Yay')
  }

    /* 
    console.log(Words[word]); */

/*     response.send(reply); */
  }

當我通過腳本運行代碼時

async function counter(elemid){
  let response = await fetch("/add/"+elemid);
} 

響應時間太長,有時會導致請求超時,是否有更快的方法來實現完全相同的目的

您沒有在完成的處理程序中編寫響應。 這使每個請求只能通過超時結束。

在您完成的 function 最后添加response.end()

您可以通過確保請求從您的服務器收到 200 響應而不是超時來驗證這是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM