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

时间:2015-08-26 05:14:21

标签: angularjs node.js fs

我想使用fs或replace替换css文件中的确切变量值,我已经搜索了足够的但我发现只替换fs和替换中的文件,下面是我试图这样做的代码,但我想替换css文件中的变量

//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文件,我想将.background-color中的颜色替换为我从客户端获取的主题颜色

.background-color{
        color:black;
    }

1 个答案:

答案 0 :(得分:1)

您可以使用css-parser

之类的内容
.background-color{
        color:black;
}

.menu-color{
        color:black;
}

解析,并获取传入的对象in-form JSON,找到选择器(background-color)到所需的vaue属性(color: black),用必要的(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