2016-10-06 3 views
0

Я делаю веб-приложение на основе оригинальной среды MEAN.js. Когда я хочу запросить локальный тестовый файл json с помощью метода $ http.get() в моем файле AngularJS, он вернул мой индекс html content.Is это проблема маршрутизации? Я не изменил исходный код маршрута mean.js (https://github.com/meanjs/mean), просто добавил метод $ http.get() в файле home.client.controller.js. Кто-нибудь может мне с этим помочь? Благодаря!

ответ

0

Это, скорее всего, происходит, потому что вы не определили конечную точку для этого конкретного запроса GET в своем приложении.

Каждый раз, когда вы делаете запрос на свой сервер (например, запрос GET на /my-request), nodejs/express настроены в MEAN.js, чтобы ваш сервер попытался найти конечную точку для этого запроса, если он не находит каких-либо , что запрос будет обработан этим конкретным блоком кода (указанный в /modules/core/server/routes/core.server.routes.js):

// Define application route 
app.route('/*').get(core.renderIndex); 

что будет в основном визуализации представления индекса.

Я не уверен, что вы используете специальный модуль или нет, если хотите, чтобы этот запрос обрабатывался по-другому в MEAN.js, вы можете указать свою конечную точку в своем файле маршрутов пользовательских модулей (или в core.server.controller.js) как так:

// Define application route 
app.route('/my-request').get(core.sendMyJSON); 

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

Тогда вам придется создать контроллер, который должен быть вызван для обработки этого запроса:

exports.sendMyJSON = function (req, res) { 
    // logic to serve the JSON file 
}; 

Таким образом, вы должны быть в состоянии сделать это с некоторыми коррективами.

Примечание стороны: Я не совсем уверен, но я думаю, что если вы поместите файл в формате JSON в общедоступном каталоге вашего приложения вы должны быть в состоянии получить доступ к нему без необходимости дополнительной логики.