RESTAPI:如何搜索其他属性
我使用node.js作为RESTAPI。 有以下可用操作:RESTAPI:如何搜索其他属性,api,node.js,rest,express,Api,Node.js,Rest,Express,我使用node.js作为RESTAPI。 有以下可用操作: /联系人,获取,查找所有联系人 /联系人,发布,创建新联系人 /contacts/:id,GET,按其id显示或获取特定联系人 /contacts/:id、PUT、更新特定联系人 /联系人/:id,DELETE,删除特定联系人 现在搜索、查询用户的逻辑路线是什么? 我应该把这个放到3号桌上吗。路线还是我应该创建一条额外的路线?有趣的问题。这是我已经讨论过好几次的话题 我不认为有一个明确的答案,或者可能有,我只是不知道或者不同意。我认为您
我应该把这个放到3号桌上吗。路线还是我应该创建一条额外的路线?有趣的问题。这是我已经讨论过好几次的话题
我不认为有一个明确的答案,或者可能有,我只是不知道或者不同意。我认为您应该添加一个新的路由:/contacts/\u search在联系人列表上执行操作,在本例中为搜索。然后,明确并定义您要做的事情 我相信你会对这个问题有很多不同的看法。就个人而言,我认为“搜索”是对“所有联系人”的过滤,提供: GET/contacts?filter=您的\u filter\u语句 您可能已经在GET/contacts上设置了过滤参数,以允许分页与filter语句配合使用 编辑: 使用此选项分析查询字符串:
var url = require('url');
在处理程序中(“请求”是您的nodejs http请求对象):
GET/contacts
查找所有联系人。您需要所有联系人的子集。URI中的哪个分隔符表示子集?不是“?”;这是不分等级的。“/”字符用于分隔分层路径段。因此,对于联系人的子集,请尝试使用URI,如/contacts/like/dave/
或/contacts/by\u name/susan/
按路径段划分数据子集的概念不仅适用于集合,而且适用范围更广。您的整个站点是一个集合,每个顶级路径段定义了其中的一个子集:
http://yoursite.example/contacts
是http://yoursite.example/
。它的适用范围也更窄:/contacts/:id
是/contacts
的一个子集,/contacts/:id/firstname
是/contacts/:id
的一个子集嗨,你能给我一个示例代码吗?我在express/nodeOk中不常见url查询,我将filterStatement放入mongoose find表达式中。那么我现在如何使用url进行过滤呢。我尝试了GET/contacts?filter=username,但这根本无法过滤,我如何定义多个过滤器?至于Mongoose/MongoDB find语法,我建议您查看Mongoose文档:和MongoDB查询:。我认为这是一个额外搜索引擎的好方法。但是,在表演过程中,公正的提问更符合逻辑。我的印象是,这正是你所感兴趣的。但是lindstromhenrik也有一个很好的方法
var parsedUrl = url.parse(request.url, true);
var filterStatement = parsedUrl.query.filter;