2015-05-10 1 views
2

Я создал API с помощью следующей команды:Возможно ли иметь API sails.js под/api, а не /?

$ sails generate api blog

, который работает хорошо, но если бы я хотел, чтобы иметь возможность использовать URL /blog для обеспечения переднего конца HTML с помощью Угловое, я могу» т.

Возможно ли переместить все API-адреса на /api, разместить статические файлы и другие маршруты, которым требуется больше кода на стороне сервера над маршрутом в приложение «Угловое», и перенаправить все другие URL-адреса в мое приложение «Угловое», где я могу организовать маршрутизацию там? Например:

  1. пользователь получает доступ к /blog, который вызывает Sails.js для загрузки шаблона по умолчанию, который включает в себя угловые в <script> теге.

  2. Угловой считывает URL как /blog, поэтому загружает шаблон /templates/blog.html, статический файл в папке «активы».

  3. В шаблон включены запросы от /api, таких как /api/blog/page/1.

+0

Найдено подобный вопрос задал, [глобальный маршрут префиксов в salisjs] [1] [1]: http://stackoverflow.com/questions/19665272/how-to-create-a-global -route-prefix-in-sails – Nindaff

+0

Спасибо, я проверю это, @Nindaff – georgeunix

+0

Нет файла config/controllers.js @Nindaff, может быть, он был удален? – georgeunix

ответ

2

Ответ на этот вопрос можно найти here, но общая суть является:

Найти controllers.js (более старые версии sails.js) или blueprints.js (sails.js версии с момента 0.10) и нагрузки это в ваш текстовый редактор и перейдите к следующей строке (строка 100 в файле по умолчанию по состоянию на март 2015 года):

     // prefix: '',

Раскоментируйте, что линия, вставив нужный предварительно исправить URL в, например, так:

     prefix: '/api',

Обеспечение того, что URL не имеет косую черту в конце, в противном случае доступ к /api/<blah>/<blah> не будет работать.

0

Очень просто вы можете сделать это, установив префикс проекта на config/blueprint.js. Как изменения следующей строки

// prefix : '' 

в

prefix: '/api' 

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

Предположим, у вас есть контроллер X и контроллер Y. Вы хотите использовать префикс /apix до X контроллер, но /apiy до Y контроллер.Тогда вы должны изменить X контроллер в следующим образом,

module.exports = { 
    _config: { 
    prefix: '/apix' 
    } 
} 

и Y контроллер в следующим образом,

module.exports = { 
    _config: { 
    prefix: '/apiy' 
    } 
} 

Резюме, если вы хотите, чтобы все ваши план апи вести себя каким-то образом, то изменить конфигурацию в config/blueprint.js, но если вы хотите, чтобы какой-то конкретный чертеж api вел себя каким-то образом, добавьте атрибут _config к тому значению контроллера, которое будет таким же, как конфигурация плана. Это переопределит глобальную конфигурацию.

+0

Спасибо, но это кажется длинным, поэтому я придерживаюсь ответа выше. Если вы хотите, чтобы ваши API отображались под другим префиксом для каждого, тогда это способ сделать это, но в целом, другой метод отлично работает. – georgeunix

Смежные вопросы