我正在运行带有快速路由请求的MEAN框架。我有public/
和app
的两条主要路线。
APP是一个API,public是一组从API中读取数据的网页。
// Setting the app router and static folder
app.use(express.static(path.resolve('./public')));
我在公共文件夹中有两个控制器,主页和标题。
在家庭控制器中,我使用Angular JS来调用API并返回结果。
API允许通过使用查询字符串进行过滤:
$http.get('http://search?sumBoth=1&customer=' + customer)
我想按照
的方式建立一个特定于该控制器的路线 http://url/customers/CustomerName
将CustomerName
设置为客户变量
问题
a)最好用Angular还是Express? b)我在何处以及如何实施此类路由?
如果您需要更多信息,我希望这个问题很受欢迎,请评论。
答案 0 :(得分:0)
我了解$http.get('http://host/path?sumBoth=1&customer=' + customer)
的回复是搜索结果的列表。在这种情况下,路径应该是一个收集路径,在路径中包含搜索项并不是最佳实践。子收集路径非常标准(类似于http://host/customers/search?params
,但特定搜索词仍应包含在查询字符串中)
如果恰恰相反,您希望通过某个识别器检索一个结果(例如,客户名称是唯一的),这是一个不同的故事,您应该使用http://host/customers/:identifier
。
在任何情况下,您都可以使用角度资源,应用程序的两个部分都需要了解路由。在前端,您可以定义一个添加过滤器的附加动词(或者只使用标准query
一个 - 请参阅https://docs.angularjs.org/api/ngResource/service/ $ resource)。在后端,您需要路由呼叫并解析参数。如果它是一个列表,则解析查询字符串并呈现结果数组,如果它是单个资源,则解析标识符,找到相应的资源并将其渲染回来。