将服务器内的数据从节点js中的一个文件发送到另一个文件

我想使用fs或replace在CSS文件中replace一个确切的variables值,我已经足够的search,但我发现只有replace文件在两个FS和replace,下面是我试图这样做的代码,但我想要replace一个css文件中的variables

//to main.css var css = selectedTemplatePath + '/css/'; var mainCss = css + '/main.css'; var themecolor = new ThemeColor(req.body.color); themecolor.color = color; themecolor.savecolor(function(err, app ){ fs.stat(mainCss, function(err, stat){ var searchApp = { _id: appId }; mainCss.findOne(searchApp, function(err, app){ if(err) return console.error(err); replaceThemecolor(app, themecolor); console.log("k"); }); }); function replaceThemecolor(themecolor) { fs.readFile(mainCss, 'utf-8', function(err, data) { if (err) { return console.log(err); } var result = data.replace('black', themecolor); fs.writeFile(mainCss, result, 'utf-8', function (err) { if (err) return console.log(err) .success("success"); console.log('Success'); }); }); }; 

下面是css文件,我想用我从客户端获得的themecolorreplace.background-color中的颜色

 .background-color{ color:black; } 

你可以使用类似于css-parser东西:

 .background-color{ color:black; } .menu-color{ color:black; } 

parsing并获取forms为JSON的传入对象,find所需的vaue属性( color: black )的select器( background-color ),将其replace为必要的( color: timecolor ),然后转换回文本:

 { "type": "stylesheet", "stylesheet": { "rules": [ { /.../ "selectors": [ ".background-color" ], "declarations": [ { /.../ "property": "color", "value": "black", // => `timecolor` /.../ } } ], /.../ } }, { /.../ "selectors": [ ".menu-color" ], "declarations": [ { /.../ "property": "color", "value": "black", /.../ } } ], /.../ } }, ], /.../ } 

http://iamdustan.com/reworkcss_ast_explorer/#/NYrDzAOEqH/1