如何在快递中的req.body.field的开头和结尾删除空格

时间:2018-01-24 10:51:35

标签: javascript json node.js express

app.js中的正文解析器是:

var bodyParser=require("body-parser")// version "body-parser": 
                                               "^1.18.2",
...
 //parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
 //parse application/json
app.use(bodyParser.json())

HTML中的AJAX脚本:

var xhr= new XMLHttpRequest()
...
xhr.send('field='+field);

我在快递中有一个请求正文来检索帖子消息:

app.post('/myRoute',function(req,res){
           var result=JSON.stringify(req.body.field,null,2)// result.split("")=",s,o,m,e,t,h,i,n,g,"
           ....
    })

令人讨厌的是,我在 JSON.stringify(req,body.field,null,2)的返回值的开头和结尾都有一个空格

我尝试应用js trim()方法:result.trim(),但没有结果:

JSON.stringify(req.body.field,null,2).trim().split("") returns ",s,o,m,e,t,h,i,n,g,"

2 个答案:

答案 0 :(得分:0)

当你stringify一个字符串时,你会得到一个双引号字符串,所以当你split时,你没有额外的空格,而是额外的双引号。

const string = "toto";
console.log(string); // toto

const stringifiedString = JSON.stringify(string);
console.log(stringifiedString); // "toto"

const split = stringifiedString.split("");
console.log(split); // ['"', "t", "o", "t", "o", '"']

正如@Keith指出的那样,为什么要进行字符串化?

答案 1 :(得分:0)

如果你真的需要这样做,你可以删除你在分割后使用stringify创建的额外引号,方法是从数组中删除它们。 请注意,这只会处理引号(")。



var arr = JSON.stringify('something',null,2).split('');
console.log(arr); // with quotes
for(i = arr.length - 1; i >= 0; i--) {
  if(arr[i] === '\"') {
	arr.splice(i, 1);
  }
}
console.log(arr); // without quotes