如何用节点写多行javascript代码到文件?

时间:2013-12-15 21:31:29

标签: javascript node.js angularjs

我在前端生成一些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定义中出现语法错误。

2 个答案:

答案 0 :(得分:2)

多行字符串的JavaScript语法如下:

var jsCode = "function(){ \
baz = foo(" + bar + "); \
   return baz*2;"

答案 1 :(得分:0)

我通过

解决了这两个问题

1)将coffeescript用于多行字符串,使用#{}插值模式包含变量部分

2)使用fs写入文件(感谢提示@verybadalloc)