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,"
答案 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