Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么节点不';不能正确地转义字符串?_Javascript_Node.js - Fatal编程技术网

Javascript 为什么节点不';不能正确地转义字符串?

Javascript 为什么节点不';不能正确地转义字符串?,javascript,node.js,Javascript,Node.js,我是Node的新手,请原谅我问了一个愚蠢的问题,但我有一个字符串: var myString = 'DOMAIN\\username'; 我想在对象中使用它: var myObject = { owner: myString }; 因此,如果我做一个console.log(myString),它会显示'DOMAIN\username',但是当我在对象中使用它时,它似乎不会转义。myObject的输出将是: { owner: 'DOMAIN\\username } {owner:'D

我是Node的新手,请原谅我问了一个愚蠢的问题,但我有一个字符串:

var myString = 'DOMAIN\\username';
我想在对象中使用它:

var myObject = {
    owner: myString
};
因此,如果我做一个
console.log(myString)
,它会显示
'DOMAIN\username'
,但是当我在对象中使用它时,它似乎不会转义。myObject的输出将是:

{ owner: 'DOMAIN\\username }
{owner:'DOMAIN\\username}

我尝试了双重转义,并可能将其转换为特殊字符,但没有成功。有人知道我需要做什么吗

编辑


问题是我必须在SOAP调用中使用它,因此它给出了一个错误,指出“域\用户名”不存在。我真的不需要控制台记录它,我只是想在发送调用之前看看参数是如何格式化的。我也尝试了JSON.stringify(myObject),但也没有成功。它仍以“域\用户名”的形式传输

myObject的输出将是:

{ owner: 'DOMAIN\\username }
这是因为您将它作为一个对象记录,例如通过
console.log
或类似的方式,因此它向您显示了它的源代码


myString
变量和
myObject.owner
属性中,字符串中正确地包含一个反斜杠。问题纯粹在于如何输出对象。

Console.log“escapes”或者更确切地说,只是没有显示双反斜杠。请尝试
JSON.stringify(myObject)
,您将看到原始字符串。@marekful:字符串中的反斜杠也会在JSON中转义。输出建议的结果是字符串
{“owner”:“DOMAIN\\username”}
。这正是我想要指出的。OP询问为什么他在console.log输出中只看到一个反斜杠。请查看我的更新。您如何将数据写入SOAP调用?问题是我必须在SOAP调用中使用此项,因此它给出了一个错误,指出“域\\用户名”不存在。我真的不需要控制台记录,我只是想在发送调用之前看看参数的格式。@AndrewButler:字符串中只有一个反斜杠。如果您在SOAP调用中遇到问题,您需要查看如何将字符串写入SOAP内容。简单地输出字符串不会导致反斜杠重复。@AndrewButler
console.log
的问题是
util.format
(即)转义作为对象属性一部分的字符串。比较
util.format(“a\\b”)
=>
“a\\b”
util.format({a:“b\\c”})
=>
“{a:\'b\\\\c\}”
。问题实际上来自
format
使用的
util.inspect
。尝试用
var oldspect=util.inspect覆盖
inspect
;util.inspect=function(){process.stdout.write(“调用了inspect\n”);oldspect.call(this,arguments)}
如果
inspect
导致问题,则调用invstigate。