Как создать исполняемый файл Express API - PullRequest
0 голосов
/ 20 марта 2019

Я создал полностью функционирующее довольно простое приложение API-интерфейса javaScript Node.js Express, которое я хочу запускать как исполняемый файл в среде Windows. Я хочу сделать это, чтобы я мог дать клиентам возможность запускать мой API на месте, не раскрывая им мой исходный код.

В настоящее время я использую пакет pkg npm , который позволяет мне упаковать мое приложение node.js в исполняемый файл, который будет содержать все необходимое для запуска приложения, включая узел и мой исходный код.

Мой исполняемый файл запускается, но мой маршрут POST прерывается со следующей ошибкой:

    "name": "RequestError",
    "message": "Error: form-data: File or directory 'C:\\**\\myapp-api\\uploads\\1553103249524_test.wav' was not included into executable at compilation stage. Please recompile adding it as asset or script.",
    "cause": {
        "errno": -4058,
        "code": "ENOENT",
        "path": "C:\\snapshot\\myapp-api\\uploads\\test.wav",
        "pkg": true
    },
    "error": {
        "errno": -4058,
        "code": "ENOENT",
        "path": "C:\\snapshot\\myapp-api\\uploads\\1553103249524_test.wav",
        "pkg": true
    },

My POST позволяет клиентам загружать файл в многокомпонентной форме, используя multer.js в другой внешний API, который будет возвращать некоторые метаданные. У pkg.js, похоже, нет средств для обнаружения файлов, которые включаются после объединения исполняемого файла.

Могу ли я что-нибудь сделать в своей конфигурации, чтобы мои загруженные файлы были включены? Существуют ли какие-либо другие утилиты или процессы, которые другие используют для создания исполняемого файла своих выраженных API-интерфейсов node.js, которые лучше справились бы с моей проблемой?

Любое руководство было бы действительно замечательно.

1 Ответ

1 голос
/ 20 марта 2019

Попробуйте добавить свои файлы в разделе "assets" в файле package.json.

Абзац конфигурации на сайте pkg https://www.npmjs.com/package/pkg#config гласит:

Таким образом, вы должны указать файлы - скрипты и ресурсы - вручную в свойстве pkg вашего файла package.json.

"pkg": {
    "scripts": "build/**/*.js",
    "assets": "views/**/*"
}

Вы также можете указать массивы глобусов:

"assets": [ "assets/**/*", "images/**/*" ]

Просто обязательно вызовите pkg package.json или pkg. использовать скрипты и записи ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...