【问题标题】:Removing Newlines from req.body从 req.body 中删除换行符
【发布时间】:2012-09-17 06:03:25
【问题描述】:

我正在做一个节点项目。在下面的中间件 sn-p 中,我需要从 req.body 中删除换行符,以准备在 JSONP 响应中发送。

server.use(function(req,res,next){
  if(req.query.concat) {
    req.body = req.body; // <--- HERE I need to remove the newlines, etc.
  } else {
    req.body = req.body || {};
    req.body.jsonp_callback = req.query.callback;
  }
  next();
})

如何让 req.body 为 JSONP 做好准备?

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    javascript 中的换行符与任何其他字符一样,用“\n”表示。使用全局替换:

    server.use(function(req,res,next){
      if(req.url.match(/^\/(api|view|partial)/) && req.query.callback){
        if(req.query.concat) {
          req.body = req.body.replace(/\\n/g, ''); // <--- Newlines are globally replaced with empty string
        } else {
          req.body = req.body || {};
          req.body.jsonp_callback = req.query.callback;
        }
      }
     next();
    })
    

    【讨论】:

    • req.body 没有方法 replace。 o_0
    • 获取正文的字符串表示,执行替换,然后重新分配回它在实际 body 对象中所属的任何位置。
    【解决方案2】:

    使用str.split("\n") 将返回一个数组,其中您的字符串被分割成由换行符表示的块,然后使用循环将所有内容重新组合在一起。

    var arr = str.split("\n");
    var result = "";
    for(var i = 0; i < arr.length; i++) {
      result += arr[index];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-24
      • 2019-03-29
      • 2019-09-15
      • 2013-01-23
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      相关资源
      最近更新 更多