Node.jsによるファイル書き込み時の特殊文字処理について
Latexエディターを制作しており、そこでファイル書き込み処理に苦戦しているのでご教授お願いしたいです。
ユーザーが入力したテキストデータをjson形式でサーバーにpost送信し、サーバー側でtexファイルを作成するときにテキストデータに含まれる特殊文字\\
を\
に変換して.texファイルに書き込みたいです。
postするjsonデータの一部(見やすいように改行しております)
"\\documentclass{jsarticle}\n
\\usepackage[dvipdfmx]{graphicx}\n
\\setlength{\\textheight}{24cm}\n
\\setlength{\\topmargin}{-1.5cm}\n
\\setlength{\\textwidth}{17cm}\n
\\setlength{\\oddsidemargin}{-.5cm}\n
\\usepackage{here}\n
......
サーバー側で作成した.texファイル
"\\documentclass{jsarticle}
\\usepackage[dvipdfmx]{graphicx}
\\setlength{\\textheight}{24cm}
\\setlength{\\topmargin}{-1.5cm}
\\setlength{\\textwidth}{17cm}
\\setlength{\\oddsidemargin}{-.5cm}
\\usepackage{here}
....
作成したtexファイルに上記のような\\
の書き込みになってしまい、本来のlatexの書き方と違ってきます......。
理想は以下のようtexファイルに書き込みたいです。
"\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\setlength{\textheight}{24cm}
\setlength{\topmargin}{-1.5cm}
\setlength{\textwidth}{17cm}
\setlength{\oddsidemargin}{-.5cm}
\usepackage{here}
....
現在サーバー側でデータを受け取り、ファイル作成している処理コードは以下です。
jsonData = JSON.stringify(req.body.msg);
console.log(jsonData);
var arr = jsonData.split(/\\n/);
for (var i = 0; i < arr.length; i++){
console.log(arr[i]);
//arr[i] = arr[i].replace(/\\/g, '');
fs.appendFileSync('sample.tex', arr[i] + '\n', function (err) {
console.log(err);
});
}
msgにすべてのテキストデータが入っています。うまくできないのでコメントアウトしております。
なんとかtexファイルに\
を書き込むことはできないでしょうか?
よろしくお願いいたします<(_ _)>
<追記>
エディターでは以下のように入力しています。
\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\setlength{\textheight}{24cm}
\setlength{\topmargin}{-1.5cm}
\setlength{\textwidth}{17cm}
\setlength{\oddsidemargin}{-.5cm}
\usepackage{here}
....
クライアント側で以下のコードで、テキストデータを送信しております。
*Aceを使いエディターを作成しております。
$('#save').click(function(e) {
//alert(editor.getValue());
$.ajax({
url: 'http://localhost:3000/editor',
type: 'post',
data: {'msg': editor.getValue()},
dataType: 'json'
});
});
editor.getValue()に入力されたデータが入っており、中身は以下のようになっております。
"\\documentclass{jsarticle}
\\usepackage[dvipdfmx]{graphicx}
\\setlength{\\textheight}{24cm}
\\setlength{\\topmargin}{-1.5cm}
\\setlength{\\textwidth}{17cm}
\\setlength{\\oddsidemargin}{-.5cm}
\\usepackage{here}
......"
これをそのままjsonデータとして送信しているので、\\
がついたままtexファイルを作成されるのだと思っております。