angularjs - 在 Node js中将服务器内部的数据从一个文件发送到另一个文件

标签 angularjs node.js fs

我想使用fs或replace替换css文件中的确切变量值,我已经搜索了足够多的内容,但我只找到了有关在fs和replace中替换文件的信息,下面是我尝试这样做的代码,但我想替换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;
    }

最佳答案

您可以使用类似 css-parser 的内容:

.background-color{
        color:black;
}

.menu-color{
        color:black;
}

解析,并以 JSON 形式获取传入对象,找到所需的 vaue 属性(color: black)的选择器(background-color),将其替换与必要的(颜色:时间颜色),并转换回文本:

{ "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

关于angularjs - 在 Node js中将服务器内部的数据从一个文件发送到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32218454/

相关文章:

javascript - 如何将 jpeg 文件从服务器上的文件夹发送到客户端并将其显示在图像元素中?

javascript - Safari 阻止对 Express API 的 CORS 请求

angularjs - 表情符号和其他 unicode 字符在 Angular 中未正确显示

node.js - 用于 srtp 流的 GStreamer 管道的 ffmpeg 命令

javascript - 使用 browserify 需要外部库时出错(this = 未定义)

macos - 后台进程在 OS X 上显示为 "not responding"

javascript - ng-repeat 更新所有表单

ajax - POST FormData 对象到 Spring MVC

node.js - Node.js 中可写流的 write() 方法调用速度有多快?

javascript - 我可以将 writeStream.bytesWritten 与管道一起使用吗?