我有一个启用了node.js的网站。
用户将通过表单输入密钥,然后在脚本中我们将得到一个这样的字符串。用户将输入\ n,因为它是从私钥复制和粘贴
例如:
hello how are you\nvery good :)
HTML看起来像这样
<form id="FORM_Key">
<button id="send_Key">Save</button>
<label for="Textarea_Key">
<input type="text" id="Textarea_Key" class="dropdown_textarea" name="Textarea_Key" placeholder="Enter Private Key.." onclick="addHandler_Key();">
</label>
</form>
然后我创建一个将由输入生成的此字符串的console.log,它与上面的输出相同。 @Crogo在下面评论说它已经被转义,因为我在这个日志中看到了\ n!换句话说,这就是它在JSON文件中的样子:
hello how are you\nvery good :)
但是我想用这个字符串替换JSON文件的一些元素,我用它来写我的文件。
var test = $('#Textarea_Key').val()
var json_configFile = require('C:/user/default.json', 'utf8')
json_configFile['AppSettings'].appAuth.Key = test
var gangwithme = JSON.stringify(json_configFile, null, 4)
var options = { flag : 'w' };
fs.writeFile('C:/user/default.json', gangwithme, options, function (err) {
if (err) {
console.log( 'Error: ' + err )
}
else {
console.log( 'SUCCESS' )
}
});
一切正常,文件被编辑和保存。 但对我来说非常重要的是\ n没有创建新行或将被转义.. 因为在文件中它看起来像这样
'hello how are you\\nvery good :)'
问题是由于双反斜杠,我的身份验证密钥现在不再起作用了。它必须在JSON中看起来像这样:
'hello how are you\nvery good :)'
有没有办法用fs作为选项值禁用转义,还是你知道另一种方式? :)
答案 0 :(得分:0)
@Crogo给出了答案,谢谢你!
所以在你的textarea你基本上需要输入
hello how are you
然后按Enter键,然后输入
very good :)
将你的字符串/ json包含为&#34;纯粹的&#34;越线。如果您想继续,请直接输入
hello how are you\nvery good :)
并且仍然在JSON中以这种方式编写,您需要在保存之前转换表单提取的字符串:
test = test.replace(/\\n/gm, '\n')