变量在它自己的Javascript上更改值



我已经使用DynamoDB SDK格式化了要在putItem调用中使用的字符串。这个长字符串(我想添加的项目有很多信息(存储在一个变量中,我应该能够在dynamoDdb.putItem()Item {}部分中使用它。

然而,当实际处理变量时,会添加额外的字符,导致Item {}的格式不正确。

见下文:

itemToAdd = JSON.stringify(marshalled2, null,2)
newString = itemToAdd.slice(4, itemToAdd.length-1)
correct = newString.replaceAll(" ", '');
correct2 = correct.replaceAll("n", "")
//console.log(newString)
var params = {
TableName: "Music",
Item: {
correct2
}
}
dynamodb.putItem(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});

我的问题是,字符串correct2中没有斜杠或n,因为我之前已经删除了它们。然而,当字符串correct2与params对象一起使用时,额外的黑斜杠已经添加到字符串中,扰乱了格式。

correct2中包含的字符串示例如下:

"AlbumData":{"S":"2B5C1828-6077-4ED1-89AD-13602A7AC08D"},"label":{"S":"EvolutionMediaMusic"},"Album":{"S":"BleakDrama"},"albumCode":{"S":"EMM101"},"releaseDate":{"S":"21/06/2016"},"description":{"S":"Contemporarynoircrimedrama:coldandforebodingcueswithtwistedsyntheticatmospheresandpulsingrhythms."},"credits":{"S":""},"tracks":{"L":[{"M":{"id":{"S":"984CA56C-3FA8-4F49-9C9E-3F96C237EE7E"},"trackNo":{"S":"1"},"albumCode":{"S":"EMM101"},"albumName":{"S":"BleakDrama"},"lengthOfTrack":{"S":"02:30"}, //more fields would go here

如果我复制上面的文本并将其插入变量所在的位置,那么代码就没有问题。使用javascript调试控制台,变量correct2被设置为以上值params.Item = "AlbumData":{"S":"2B5C1828-6077-4ED1-89AD-13602A7AC08D"},"label":{"S":"EvolutionMediaMusic"},"Album":{"S":"BleakDrama"}, // and the patten repeats

是什么导致correct2和params之间的差异。项目我希望他们也一样。

伙计,没关系,放松一下。它被称为逃逸

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#escape_sequences

https://www.geeksforgeeks.org/how-to-use-escape-characters-to-correctly-log-quotes-in-a-string-using-javascript/

相关内容

最新更新