2016-10-06 22 views
0

我正在做一个基于原始MEAN.js框架的web应用程序。当我想在我的AngularJS文件中使用$ http.get()方法请求本地json测试文件时,它返回了我的索引html内容。它是一个路由问题吗?我没有更改原始的mean.js路由代码(https://github.com/meanjs/mean),只是在home.client.controller.js文件中添加了一个$ http.get()方法。谁能帮我这个?谢谢!

回答

0

这很可能发生,因为您没有在应用程序中为特定的GET请求定义端点。

每次向服务器发出请求时(例如对/my-request的GET请求),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文件,你应该能够直接访问它,而不需要额外的逻辑。

相关问题