0

我正在做一个节点项目。在下面的中间件片段中,我需要从中删除换行符,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 做好准备?

4

2 回答 2

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();
})
于 2012-09-16T21:41:39.397 回答
0

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

var arr = str.split("\n");
var result = "";
for(var i = 0; i < arr.length; i++) {
  result += arr[index];
}
于 2012-09-16T21:37:44.880 回答