【问题标题】:How do you build a case insensitive REST API using Express and Node JS如何使用 Express 和 Node JS 构建不区分大小写的 REST API
【发布时间】:2014-01-08 21:55:26
【问题描述】:

我使用如下所示的快速控制器方法。如何确保我能够从 {"Name" : "Sam", "EmpId": 1} 或 {"name" : "Sam", "empId": 1}

中读取属性
app.post '/api/employee', (req, res) ->
    employee = new EmployeeModel({
      Name: req.body.Name,
      EmpId: req.body.EmpId
    })
    employee.save (err) ->
      if (err)
        res.send err
      else
        res.send employee

【问题讨论】:

  • 预感:用小写的属性键创建对象的副本

标签: node.js rest express coffeescript


【解决方案1】:

如果您知道这只有两种配置,何不尝试:

app.post '/api/employee', (req, res) ->
    employee = new EmployeeModel({
      Name: req.body.Name || req.body.name,
      EmpId: req.body.EmpId || req.body.empId
    })
    employee.save (err) ->
      if (err)
        res.send err
      else
        res.send employee

否则,您将需要 for...in 循环,如 here 所述。

【讨论】:

  • 我从我所有的控制器路由方法中都需要它(所以最终编写了 for 循环并让所有路由方法都经过这个 - @lowerCaseRequestBody = (body) -> newbody = {} for key, value of body newbody[key.toLowerCase()] = value return newbody
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 2011-10-14
  • 2019-05-30
  • 2020-02-18
  • 2023-04-07
相关资源
最近更新 更多