Nodejs读取并替换为文件

时间:2017-01-29 16:22:36

标签: javascript angularjs node.js replace

我写了一个函数来读取和替换用angularjs中的表单写的单词。我想知道你的意见,以优化它 知道我必须在两个文件中执行更改。

 function openFile(infile) {
                fs.open(infile, 'r', function (err, fd) {
                    changeFile(fd);
                });
            }

        function changeFile(fd) {
            var out = '';
            var buf = new Buffer(1024);
            buf.fill(0);
            try {
                fs.read(fd, buf, 0, 1024, null, function (err, bytesRead, buffer) {
                    if (bytesRead === 0) {
                        writeFile(out);
                        return;
                    }
                    var str = buffer.toString('utf8', 0, bytesRead);

                    for (var i in req.body.tpl.title) {
                        str = str.replace('${' + req.body.tpl.title[i].id + '}', req.body.tpl.title[i].value);
                    }
                    for (var i in req.body.tpl.content) {
                        str = str.replace('${' + req.body.tpl.content[i].id + '}', req.body.tpl.content[i].value);
                    }
                    for (var i in req.body.tpl.image) {
                        str = str.replace('${' + req.body.tpl.image[i].id + '}', '../../../' + req.body.tpl.image[i].path);
                    }
                    for (var i in req.body.tpl.video) {
                        str = str.replace('${' + req.body.tpl.video[i].id + '}', '../../../' + req.body.tpl.video[i].path);
                    }
                    out += str;
                    changeFile(fd);
                });
            } catch (err) {
                console.error(err);
            }
        }

        function writeFile(str) {
            fs.writeFile(infile, str, function (err, written, buffer) {
                fs.rename(infile, infile);
            });
        }

谢谢你解决方案

0 个答案:

没有答案