import pkg from 'node-csv'; import logger from '#root/utils/logger.js'; import path from 'path'; const __dirname = path.dirname(new URL(import.meta.url).pathname); const { createParser } = pkg let recipeData; let loaded = false; function parser() { const csv = createParser(); return new Promise((r, j) => { csv.parseFile(path.join(__dirname, './recipe.csv'), function (err, data) { if (err) { logger.err(err); return j(); } logger('食谱加载成功'); const keys = data.shift() console.log(keys) recipeData = data.map(d => { const res = {} keys.forEach((key, index) => { if (key) { res[key] = d[index] } }) return res }); loaded = true; r(recipeData); }); }); } export default async function getDb() { if (loaded) { return recipeData; } else { await parser() return recipeData; } } getDb().then((res) => { console.log(recipeData) })