Javascript 如何根据Sails.js中的请求使用HTML或JSON进行响应

Javascript 如何根据Sails.js中的请求使用HTML或JSON进行响应,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,假设我有一个名为User的模型,它具有基本的REST CRUD(GET、POST、DELETE、UPDATE) 当我转到user/4(其中4是不存在的用户ID)时,有两种情况: 如果我使用Postman这样的REST客户机,我会得到一个404,其他什么都没有 如果我在浏览器上,我会得到一个404页面(包含文本、图像等),它是在views文件夹中定义的 如何为findOne、find和其他URL实现这一点?我希望能够为不同类型的请求提供仅JSON响应和HTML页面响应。但是我不想重写这些函数,因为

假设我有一个名为
User
的模型,它具有基本的REST CRUD(GET、POST、DELETE、UPDATE)

当我转到
user/4
(其中4是不存在的用户ID)时,有两种情况:

  • 如果我使用Postman这样的REST客户机,我会得到一个404,其他什么都没有
  • 如果我在浏览器上,我会得到一个404页面(包含文本、图像等),它是在views文件夹中定义的
  • 如何为
    findOne
    find
    和其他URL实现这一点?
    我希望能够为不同类型的请求提供仅JSON响应和HTML页面响应。但是我不想重写这些函数,因为ORM已经做了很多我不想丢失的工作

    编辑:我的解决方案是在API中留下前缀,例如
    /API/user/4
    ,而HTML响应中没有前缀
    user/4
    ,但我希望看到更优雅的解决方案


    编辑2:我刚刚决定全部使用JSON,只使用带有独立前端的REST服务;)

    如果您可以控制API客户端发送的头,我会看到两个基于发送的头的干净语义解决方案:

    • 您可以依靠
      X-request-With:XMLHttpRequest
      头来识别Ajax查询
    • 依靠
      Accept:text/json
      头显式请求json
    您还可以使用文件扩展名修改url以请求特定响应,
    user/4.html
    =>send html,
    user/4
    =>send json