fs.writeFile如何在\ n之类的东西中禁用转义

时间:2017-09-22 14:02:10

标签: node.js escaping electron fs

我有一个启用了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作为选项值禁用转义,还是你知道另一种方式? :)

1 个答案:

答案 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')