Node.jsサーバーでExcelファイルを読み取るときにjs-xlsxを使用しています。ファイルはマルチパートフォームデータを使用して転記され、一時的な場所に保管されます。しかし、ファイルを読んでいるうちに、Node.jsスレッドがブロックされていて、他の要求を処理できないように見えます。次のコードでは、/ readへの呼び出しが保留中に/を呼び出すと、/ stallsへの呼び出しが完了するまで/ stallsへの呼び出しが行われます。Node.jsでjs-xlsxを使用したノンブロッキング読み取り
const express = require('express');
var XLSX = require('xlsx');
const app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
})
app.get('/read', function (req, res) {
console.log("Starting file read ...");
var workbook = XLSX.readFile("/tmp/myfile.xlsx")
console.log("Done file read ...");
res.send('File Read')
})
app.get('/readwithtimeout', function (req, res) {
console.log("Starting file read ...");
setTimeout(function() {
var workbook = XLSX.readFile("/tmp/myfile.xlsx")
console.log("Done file read ...");
}, 0);
res.send('File Read')
})
app.listen(3000, function() {
console.log('Example app listening on port 3000!')
})
これはExcelファイルを読み込んで解析する正しい方法ですか?それとも別のことをしなければならないのですか?ここではそのドキュメントによると
私はどちらも役に立たないと思います。私は今、適切な解決策は、ブラウザでファイルを解析し、Node.jsサーバーの解析されたデータを返信してデータベースに一括してロードすることだと考えています。 –