требуется пакет npm внутри контейнера Dock mock-server (ответ шаблона javascript) не работает - PullRequest
0 голосов
/ 09 июля 2019

У меня есть mock-сервер (https://github.com/jamesdbloom/mockserver) экземпляр контейнера Docker с некоторым ожиданием, которое должно вернуть шаблон javascript. Было бы намного проще, если бы я мог использовать пакеты npm в этом шаблоне (а именно, faker).js) для генерации хорошего фальшивого ответа.

Mockserver не может разрешить require ('faker'), и я действительно не уверен, почему. Вот что я пробовал до сих пор:

  1. npm install faker (устанавливает фейкер в / opt / mockserver /) Я пробовал require('faker'), require('/opt/mockserver/faker')

  2. npm install -g faker (устанавливает фейкер в /usr / lib /) Я пробовал require('faker'), require('/usr/lib/faker')

  3. , клонируя репозиторий faker.js и используя его как локальный модуль, который я пробовал require('/opt/mockserver/faker.js'), require('/opt/mockserver/faker.js/lib')

Все вышеперечисленное не сработало. Неиспользование внешнего модуля работает нормально, но я бы очень хотел решить эту проблему. Mockserver - это не приложение nodejs, и все, что я могнайти в Интернете, как превратить докер в приложение nodejs.

Любая помощь приветствуется

Вот небольшой стартовый код, который яЕсли кто-то захочет попробовать

Создать ожидание

curl -v -X PUT "http://localhost:1080/mockserver/expectation" -d '{
    "httpRequest": {
        "path": "/some/path"
    },
    "httpResponseTemplate": {
        "template": "var faker = require('/opt/mockserver/faker.js');\nreturn {'statusCode': 200, 'body': JSON.stringify({'firstName': faker.name.firstName(), 'lastName': faker.name.lastName()})};",
        "templateType": "JAVASCRIPT"
    }
}'

с этим шаблоном ответа

var faker = require('/opt/mockserver/faker.js');

return {
    'statusCode': 200,
    'body': JSON.stringify({
        'firstName': faker.name.firstName(),
        'lastName': faker.name.lastName()
    })
};

Для проверки:

curl -v -X GET "http://localhost:1080/some/path"

Спасибо:)

...