Сервер Json не является внутренней или внешней управляемой программой или пакетным файлом

Обновлено: 05.07.2024

С клонированным исходным проектом и установленной MongoDB давайте рассмотрим, что у нас есть в настоящее время в нашем проекте, и все, что нам нужно знать, чтобы запустить наш сервер.

Анатомия экспресс-приложения

Структура каталогов начального проекта основана на структуре, созданной экспресс-генератором. Это один из многих способов структурирования приложения Express, и вы можете изменить структуру своего приложения по своему усмотрению.

  • Папка config будет использоваться для хранения параметров конфигурации нашего приложения. Для нашего проекта в этой папке мы будем хранить переменные среды и конфигурацию дляpassword.js.
  • Папка models будет использоваться для хранения наших моделей Mongoose. Эти модели будут содержать схему для наших данных и будут точкой входа для того, как наши данные поступают и выходят из MongoDB.
  • Общая папка используется для хранения обслуживаемых статических файлов, таких как файлы HTML, CSS и Javascript. Поскольку нас интересует только создание API, эта папка не будет использоваться в этом руководстве, но если вы позже создадите клиентское приложение для этого проекта, оно может находиться в этой папке.
  • Папка маршрутов — это место, где мы определяем маршруты, на которые будет реагировать наше приложение, и будет содержать логику для наших конечных точек.
  • app.js — это точка входа в наше приложение. Это файл, который выполнит узел и объединит все части нашего приложения (маршруты, модели и т. д.).
  • Файл package.json используется npm для объявления зависимостей и сценариев для нашего приложения. Подробнее о различных параметрах конфигурации, которые можно использовать в package.json, можно прочитать здесь

Запуск сервера в первый раз

Хотя использование процесса узла отлично подходит для запуска нашего сервера в производство, оно часто может быть проблематичным при разработке, поскольку узел не отслеживает изменения в наших файлах и не перезагружает их автоматически. Это означает, что каждый раз, когда мы вносим изменения в файл, нам нужно перезапускать наш сервер. К счастью, есть инструмент под названием nodemon, который автоматически отслеживает папку нашего проекта и перезагружает наш сервер всякий раз, когда обнаруживает изменение файла, что идеально подходит для нашей среды разработки.

Поскольку nodemon — это инструмент командной строки, его необходимо установить как глобальный пакет узла.

Если команда установки не жалуется на разрешения, вам может потребоваться запустить команду установки с помощью sudo

После установки nodemon мы можем загрузить наш сервер, запустив nodemon app.js в каталоге нашего проекта.

Во-первых, убедитесь, что MongoDB уже работает в фоновом режиме. Вы можете проверить это, запустив mongo в своем терминале. Если вы получаете сообщение о том, что «не удалось подключиться», это означает, что MongoDB не работает. В противном случае, если вы получаете оболочку mongo, это означает, что MongoDB работает в фоновом режиме, и mongo удалось успешно к ней подключиться.

После этого вы должны увидеть сообщение, подобное следующему:

Это означает, что ваш сервер успешно загрузился!

Использование сценария NPM для запуска сервера в разработке

Хотя использования nodemon непосредственно в командной строке достаточно, чтобы запустить наш сервер в процессе разработки, в Node принято оборачивать команды запуска вашего сервера в виде NPM-скрипта. Это дает большую гибкость по мере роста проекта, поскольку мы можем сохранить ту же команду для запуска нашего сервера в разработке, если мы решим прекратить использование nodemon или если мы хотим добавить другой процесс для запуска в то же время (например, веб-пакет или другой инструмент CLI). ) с помощью той же команды.

Теперь у нас есть сценарий NPM с именем dev для загрузки нашего сервера. Хотя у нас уже есть скрипт start , мы оставляем его в покое, чтобы продолжать использовать node для запуска нашего сервера, чтобы рабочие серверы, использующие npm start для загрузки сервера, не использовали nodemon в рабочей среде.

Во-первых, убедитесь, что у вас еще не запущен экземпляр сервера, а затем запустите:


На основе предыдущего файла db.json здесь приведены все маршруты по умолчанию. Вы также можете добавить другие маршруты, используя --routes .

Множественные маршруты

Особые маршруты

Фильтр

Использовать . для доступа к глубинным свойствам

Разбить на страницы

Используйте _page и, при необходимости, _limit для разбиения возвращаемых данных на страницы.

В заголовке ссылки вы найдете первую, предыдущую, следующую и последнюю ссылки.

По умолчанию возвращается 10 элементов

Добавить _sort и _order (по возрастанию по умолчанию)

Для нескольких полей используйте следующий формат:

Срез

Добавить _start и _end или _limit (в ответ включается заголовок X-Total-Count)

Работает точно так же, как Array.slice (т. е. _start является инклюзивным, а _end эксклюзивным)

Операторы

Добавьте _gte или _lte для получения диапазона

Добавьте _ne, чтобы исключить значение

Добавить _like в фильтр (поддерживается регулярное выражение)

Полнотекстовый поиск

Отношения

Чтобы включить дочерние ресурсы, добавьте _embed

Чтобы включить родительский ресурс, добавьте _expand

Чтобы получить или создать вложенные ресурсы (по умолчанию один уровень, добавьте собственные маршруты для большего количества)

База данных

Главная страница

Возвращает индексный файл по умолчанию или обслуживает ./public directory

Дополнительно

Статический файловый сервер

Вы можете использовать JSON Server для обслуживания HTML, JS и CSS, просто создайте каталог ./public или используйте --static, чтобы задать другой каталог статических файлов.

Альтернативный порт

Вы можете запустить JSON Server на других портах с флагом --port:

Доступ из любого места

Вы можете получить доступ к своему поддельному API из любого места, используя CORS и JSONP.

Удаленная схема

Вы можете загружать удаленные схемы.

Создать случайные данные

Используя JS вместо файла JSON, вы можете программно создавать данные.

Совет: используйте такие модули, как Faker, Casual, Chance или JSON Schema Faker.

Есть много способов настроить SSL в процессе разработки. Один из простых способов – воспользоваться отелем.

Добавить собственные маршруты

Создайте файл route.json. Обратите внимание, чтобы каждый маршрут начинался с / .

Запустите сервер JSON с параметром --routes.

Теперь вы можете получить доступ к ресурсам, используя дополнительные маршруты.

Добавить промежуточное ПО

Вы можете добавить промежуточное ПО из интерфейса командной строки, используя параметр --middlewares:

Использование интерфейса командной строки

Вы также можете установить параметры в файле конфигурации json-server.json.

Модуль

Если вам нужно добавить аутентификацию, проверку или любое другое поведение, вы можете использовать проект как модуль в сочетании с другим ПО промежуточного слоя Express.

Простой пример

Путь, который вы предоставляете функции jsonServer.router, относится к каталогу, из которого вы запускаете процесс своего узла. Если вы запускаете приведенный выше код из другого каталога, лучше использовать абсолютный путь:

Для базы данных в памяти просто передайте объект jsonServer.router() .

Обратите внимание, что jsonServer.router() можно использовать в существующих проектах Express.

Пример пользовательских маршрутов

Допустим, вам нужен маршрут, который повторяет параметры запроса, и еще один, который устанавливает отметку времени для каждого созданного ресурса.

Пример управления доступом

Пример пользовательского вывода

Чтобы изменить ответы, перезапишите метод router.render:

Вы можете установить собственный код состояния для ответа:

Пример рерайтера

Чтобы добавить правила перезаписи, используйте jsonServer.rewriter() :

Пример подключения сервера JSON к другой конечной точке

Кроме того, вы также можете подключить маршрутизатор к /api .

jsonServer.create()

Возвращает экспресс-сервер.

jsonServer.defaults([параметры])

Возвращает ПО промежуточного слоя, используемое сервером JSON.

  • параметры
    • статический путь к статическим файлам
    • logger включает ПО промежуточного слоя для ведения журнала (по умолчанию: true)
    • bodyParser включает промежуточное ПО для парсера тела (по умолчанию: true)
    • noCors отключает CORS (по умолчанию: false)
    • readOnly принимает только запросы GET (по умолчанию: false)

    jsonServer.router([путь|объект])

    Возвращает маршрутизатор сервера JSON.

    Развертывание

    Вы можете развернуть сервер JSON. Например, JSONPlaceholder — это поддельный онлайн-API на базе JSON Server, работающий на Heroku.

    узел не распознается как внутренняя или внешняя команда

    Была ли у вас когда-нибудь эта ошибка узла "узел не распознан как внутренняя или внешняя команда"? Я столкнулся с проблемой, когда обнаружил эту ошибку узла в своей командной строке. Это сообщение об ошибке может быть обескураживающим. Я искал в Интернете и обнаружил, что проблема в том, что этот исполняемый файл узла не находится в моем PATH. Его точно не было.

    Поэтому я добавил узел к пути, а затем перезапустил визуальную студию только для того, чтобы убедиться, что приложение снова работает. Вот шаги, которые вам нужно будет выполнить, чтобы избавиться от ошибки «исполняемый файл узла не был в моем пути».

    • Открыть панель управления => система и безопасность => система => дополнительные настройки системы => переменные среды
    • В «Пользовательских переменных» или «Системных переменных» найдите переменную PATH и укажите путь к папке Node JS. Часто это папка C:\Program Files\nodejs. Если у вас нет переменной, то не раздумывая создайте ее
    • Перезагрузите персональный компьютер.

    Исполняемый код приложения должен находиться в папке C:\Program Files\nodejs. Если вы хотите проверить свой PATH, вы можете быстро проверить его, щелкнув правой кнопкой мыши Мой компьютер в проводнике и выбрав Дополнительные параметры системы.

    После открытия диалогового окна вам нужно перейти на вкладку "Дополнительно", и в самом конце вы найдете кнопку "Переменные среды".

    Переменные среды

    Просто нажмите на кнопку, и появятся диалоговые переменные, в том числе системная переменная PATH. Теперь убедитесь, что путь к узлу включен, если он еще не добавлен.

    Переменная PATH

    После этого перезапустите Visual Studio или еще раз откройте новую командную строку. В строке слов введите «node -v», чтобы скопировать уже установленную версию узла. Другой способ ввести PATH в любое другое приложение — непосредственно из командной строки.

    Откройте командную строку и введите, предполагая, что это ваш исходный путь, «SET PATH=C:\Program Files\Nodejs;%PATH%».

    Итак, вот несколько способов избежать ошибки «исполняемый файл узла не находится в моем PATH». Я надеюсь, что это, безусловно, поможет вам, и не стесняйтесь комментировать ниже свои отзывы.


    Я Digamber, разработчик полного стека и поклонник фитнеса. Я создал этот сайт, чтобы поделиться своим опытом программирования с начинающими программистами. Я люблю писать на JavaScript, ECMAScript, React, Angular, Vue, Laravel.

    Для аутентификации с помощью Azure Artifacts мы должны сначала настроить наш файл конфигурации. Npm использует файлы конфигурации .npmrc для хранения URL-адресов фидов и учетных данных.

    Настройка проекта

    Мы рекомендуем использовать два файла .npmrc_, первый из которых мы будем использовать для аутентификации в Azure Artifacts, а второй следует хранить локально для хранения наших учетных данных. Это позволяет вам делиться файлом .npmrc вашего проекта, сохраняя при этом свои учетные данные в безопасности.

    Выберите Артефакты, а затем выберите Подключиться к каналу.

    Снимок экрана, показывающий, как подключиться к каналу.

    Выберите Пакеты, а затем выберите Подключиться к фиду.

    Снимок экрана, показывающий как подключиться к каналу в TFS». /><br /></p>
<p>Выберите npm из списка типов пакетов.</p>
<p>Если вы впервые используете Azure Artifacts с npm, нажмите кнопку

    Следуйте инструкциям в разделе "Настройка проекта", чтобы настроить проект.

     Снимок экрана, показывающий шаги по настройке проекта, публикации и восстановлению пакетов». /><br /></p>
<p>Следуйте инструкциям в разделе

    Снимок экрана, показывающий шаги по настройке проекта и восстановлению пакетов.

    Следуйте инструкциям по настройке проекта.

    Снимок экрана, показывающий шаги по настройке проекта в TFS.

    На своем компьютере для разработки поместите второй файл .npmrc в папку $HOME для Linux/Mac или $env.HOME для Windows. . Этот второй файл должен содержать учетные данные всех ваших реестров.

    Если в вашей организации используется брандмауэр или прокси-сервер, убедитесь, что разрешены соответствующие URL-адреса домена. Дополнительную информацию см. в разделе Разрешенные IP-адреса и URL-адреса доменов.

    Настройка учетных данных

    Несколько реестров в файлах .npmrc поддерживаются исходными источниками и областями действия.

    Если вы разрабатываете для Windows, мы рекомендуем использовать vsts-npm-auth для получения учетных данных и внедрения их в ваш %USERPROFILE%\.npmrc. Самый простой способ настроить это — глобально установить vsts-npm-auth, а затем добавить скрипт запуска в ваш package.json.

    Глобально установить vsts-npm-auth:

    Добавить скрипт в package.json:

    vsts-npm-auth не поддерживается в Linux/Mac. Чтобы настроить учетные данные, выполните следующие действия:

    Скопируйте следующий фрагмент в свой файл .npmrc.

    Фид на уровне организации:

    Фид на уровне проекта:

    Создайте личный токен доступа с пакетными областями чтения и записи.

    Закодируйте вновь созданный личный токен доступа следующим образом:

    Выполните следующую команду в окне командной строки с повышенными привилегиями, а затем при появлении запроса вставьте свой личный токен доступа:

    Вы также можете использовать следующую команду для преобразования вашего личного токена доступа в Base64:

    Скопируйте значение в кодировке Base64.

    Откройте файл .npmrc и замените заполнитель [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] вашим закодированным токеном личного доступа, созданным на предыдущем шаге.

    vsts-npm-auth не поддерживается в TFS и Azure DevOps Server.

    Настройка аутентификации

    Azure Artifacts рекомендует использовать задачу npmAuthenticate для настройки проверки подлинности для ваших конвейерных задач. При использовании средства запуска задач, такого как gulp или Grunt, вам необходимо добавить задачу аутентификации npm в начале конвейера. Это добавит ваши учетные данные в файл .npmrc вашего проекта и сохранит их в течение всего срока службы конвейера. Это позволяет последующим шагам использовать учетные данные в файле .npmrc.

    Выберите Azure Pipelines, а затем выберите определение вашего конвейера.

    Выберите «Изменить», чтобы изменить конвейер.

    Нажмите +, чтобы добавить задачу в конвейер.

    Снимок экрана, показывающий, как добавить задачу аутентификации npm в конвейер

    Найдите задачу npm Authenticate и нажмите кнопку "Добавить", чтобы добавить ее в конвейер.

    Снимок экрана, показывающий задачу аутентификации npm, добавленную в конвейер

    Выберите файл .npmrc.

    Снимок экрана, показывающий, как добавить файл .npmrc

    По завершении выберите Сохранить и поставить в очередь.

    Выберите "Сборка и выпуск", а затем выберите "Сборки".

    Выберите конвейер, а затем выберите Изменить.

    Нажмите +, чтобы добавить задачу в конвейер.

    Найдите задачу npm Authenticate и нажмите кнопку "Добавить", чтобы добавить ее в конвейер.

    Снимок экрана, показывающий задачу аутентификации npm

    Выберите файл .npmrc.

    Снимок экрана, показывающий, как добавить файл .npmrc в задачу аутентификации npm

    По завершении выберите Сохранить и поставить в очередь.

    • workingFile: путь к файлу .npmrc
    • customEndpoint: разделенный запятыми список имен подключений службы npm для реестров внешних организаций. Для реестров в вашей организации оставьте это поле пустым

    Чтобы разрешить конвейеру доступ к фиду, убедитесь, что службе сборки назначена роль участника в настройках фида. Выберите Azure Artifacts -> [YOUR_FEED] -> Настройки -> Разрешения -> задайте роль службы сборки для участника.

    совет скриншота

    Устранение неполадок

    Если вы столкнулись со следующей ошибкой:

    • Cmd: 'vsts-npm-auth' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.
    • PowerShell: vsts-npm-auth: термин vsts-npm-auth не распознается как имя командлета, функции, файла сценария или исполняемой программы.

    Возможно, папка модулей npm отсутствует в вашем пути. Чтобы устранить эту проблему, повторно запустите установку Node.js и убедитесь, что выбраны параметры «Добавить в PATH».

    Снимок экрана, показывающий как настроить node.js

    Кроме того, вы можете отредактировать переменную PATH %APPDATA%\npm (командная строка) или $env:APPDATA\npm (PowerShell), чтобы добавить ее в свой путь.

    Если вы столкнулись с ошибкой E401: код E401 npm ERR! Не удается пройти аутентификацию. Запустите команду vsts-npm-auth с флагом -F для повторной аутентификации.

    Читайте также: