Я знаю, что это очень похоже на другие вопросы, которые задавались по той же ошибке. В случае, который я видел, имя файла было исключено из URL. В моем случае (насколько я знаю) URL-адрес указан в порядке, и я могу увидеть файл на моем локальном хосте с помощью других инструментов.
У меня есть потребность в приложении node.js для выполнения операций ввода-вывода для файлов JSON без использования экспресс-маршрутизации. Это API, который имеет только один маршрут (processor.js). Доступ к нему осуществляется через меню в графическом интерфейсе, выбрав «Обработка». С этого момента все происходит внутри этого маршрута, включая несколько GET / PUT для json (для идентификаторов данных, а затем с помощью идентификаторов для получения данных) и построения строк SQL для заполнения таблиц SQL-сервера из проанализированных данных json. По крайней мере, это концепция, которую я сейчас тестирую. Это рука, которую мне сдали, поэтому у меня нет других вариантов.
Я использую fs-extra, а не request или axios и т. Д., Потому что все они, похоже, ожидают, что экспресс-маршруты будут выполнять ввод / вывод. Кажется, я могу напрямую читать и писать json, используя fs-extra. Я использую sequelize (или буду) для стороны SQL.
Это фон.
Вот мой процессор.js (я просто проверяю, могу ли я на самом деле вернуть мне idsList на данный момент):
'use strict';
// node_modules
const express = require('express');
const router = express.Router();
const fse = require('fs-extra')
// local modules
const idsList = require('../functions/getIds');
router.get('/', (req, res) => {
console.log(idsList);
});
module.exports = router;
Вот моя функция getIds:
'use strict';
// library modules
const express = require('express');
const router = express.Router();
const fse = require('fs-extra');
const uri = require('../uri');
// initialize general variables
let baseURL = `http://localhost:5000${uri}/`;
let idsID = 'ids.json';
const getIds = async () => {
let url = `${baseURL}${idsID}`;
try {
const idsList = await fse.readJson(url);
console.log('fse.readJson',idsList);
} catch (err) {
console.error(err);
}
}
module.exports = getIds();
И, вот моя ошибка, вывод на консоль (она не очень хорошо отформатировалась):
Listening on port 5000...
{ [Error: ENOENT: no such file or directory, open
http://localhost:5000/Users/doug5solas/sandbox/libertyMutual/playground/api/ids.json']
ошибка: -2,
код: «ENOENT»,
системный вызов: «открыто»,
дорожка:
'http://localhost:5000/Users/doug5solas/sandbox/libertyMutual/playground/api/ids.json'}
Чего мне не хватает?