node.js - 如何使用 Node 删除响应中多余的斜杠?

标签 node.js

如何删除回复中多余的斜杠?

我已经尝试过 JSON.parseJSON.stringify 但它们在我的代码中不起作用。 JSON.parse 在位置 10 抛出类似 json 的错误。

我将响应对象推送到一个数组中。然后我显示了对象数组(带有数组)作为响应。

{
"status": true,
"message": "Data Found",
"data": [
"{\"errors\":[],\"detail\":[{\"repositories\":[],\"_instance\":{\"applicationLinkId\":\"4b0d5edc-c683-3502-aed7-5f6e152b877d\",\"singleInstance\":false,\"primary\":true,\"baseUrl\":\"http://stash.computenext.com\",\"name\":\"Stash\",\"typeName\":\"Bitbucket Server\",\"id\":\"4b0d5edc-c683-3502-aed7-5f6e152b877d\",\"type\":\"stash\"}}]}" 
] 
}

我的代码:

exports.getCommits = function (req, res) {
  console.log(filename + '>>get commits>>');
  var response = {
    status: Boolean,
    message: String,
    data: String
  };
  var request = require('request');
  var username = username;
  var password = password;
  var options = {
    url: 'https://computenext.atlassian.net/rest/api/2/search?jql=status+%3D+Resolved+ORDER+BY+updated',
    auth: {
      username: username,
      password: password
    }
  };

  request(options, function (error, obj) {
    if (error) {
      response.message = appmsg.DATA_NT_FOUND;
      response.status = false;
      response.data = obj;
      res.send(response);
    } else {
      response.message = appmsg.DATA_FOUND;
      response.status = true;
      response.data = JSON.parse(obj.body);
      //res.send(response);
      var respon = {
        status: Boolean,
        message: String,
        data: String
      };

      var issueKey = response.data.issues;
      var id = issueKey[0].id;
      console.log(id);

      var commitout = [];
      for (var i = 0; i < issueKey.length; i++) {
        var commits = issueKey[i].id;
        console.log(commits);

        var request = require('request'),
          username = username,
          password = password,
          url =
          "https://computenext.atlassian.net/rest/dev-status/1.0/issue/detail?issueId=" +
          commits + "&applicationType=stash&dataType=repository",
          auth = "Basic " + new Buffer(username + ":" + password).toString(
            "base64");

        //console.log(url);
        var test = [];
        request({
          url: url,
          headers: {
            "Authorization": auth
          }
        }, function (err, obj1) {
          if (obj1) {

            var info1 = obj1.body;
            commitout.push(info1);

            if (issueKey.length === commitout.length) {
              respon.message = appmsg.DATA_FOUND;
              respon.status = true;
              respon.data = commitout;
              res.send(respon);
            }
          }
        });
      }
    }
  });
};

最佳答案

尝试解析以下元素

commitout.push(info1);

更改为,

commitout.push(JSON.parse(info1));

更新

尝试以下正则表达式

info1 = info1.replace(/\\/g, "");
commitout.push(info1);

关于node.js - 如何使用 Node 删除响应中多余的斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47385456/

相关文章:

javascript - 用于原型(prototype)设计的简单推送服务器

javascript - 在循环外访问循环内的所有变量

node.js - Mongoose 使用子文档中的默认值覆盖 MongoDB 中的数据

javascript - 如何让nodejs在继续之前等待mongodb连接(以阻塞方式调用async)

node.js - 使用 multer 何时完成图像上传?

javascript - 使用 'koa-static' , app.use(serve ('public' )) 抛出 “requires a generator function” 错误消息

javascript - 将对象转换为映射数组?

javascript - 如何从 Azure Active Directory (AAD) Web API 检索 access_token

node.js - 使永久识别重新启动更快

node.js - 如何使用 GraphQL 和 ApolloStack 解析联合/接口(interface)字段