我在前端生成一些jS代码,我想通过对节点服务器进行api调用将其写入js文件,并且我遇到了一些问题:1)确保代码不会写入文件中文字字符串和2)确保保留多行。
以下是我如何尝试此操作的代码:
//client
var bar = "mongolia"; //this value changes hence pulling it into variable
var jsCode = "function(){ \n
baz = foo(" + bar + "); \n
return baz*2;"
var data = {
code: jsCode
}
$http.post('api/code', data).success(function(savedCode){
console.log("successful and the saved code is", savedCode);
});
//server
'use strict';
var jf = require('jsonfile'),
util = require('util');
var codeFile = './code/js/autoGen.js';
exports.addCode = function(req, res) {
var newCode = req.body.code;
//write to file
return jf.writeFile(codeFile, newCode, function(err) {
if(!err) {
return res.json({newCode: newCode});
}
else {
return res.send(err);
}
});
};
当我运行它时,我的jsCode定义中出现语法错误。
答案 0 :(得分:2)
多行字符串的JavaScript语法如下:
var jsCode = "function(){ \
baz = foo(" + bar + "); \
return baz*2;"
答案 1 :(得分:0)
我通过
解决了这两个问题1)将coffeescript用于多行字符串,使用#{}插值模式包含变量部分
2)使用fs写入文件(感谢提示@verybadalloc)