快速关税引擎视图替换内容错误

时间:2017-11-10 12:23:57

标签: node.js express

我正在尝试在加载“fs.readFile”时替换内容。

这是我的代码

app.engine('html', function (filePath, options, callback) {
  fs.readFile(filePath, function (err, content) {
    if (err) return callback(err)

      let rendered = content.toString();
      let regStr = '';
      let reg;

      for(let name in options) {
        regStr = '#(' + name + ')#';
        reg = new RegExp(regStr, 'g');

        rendered = rendered.replace(reg, options[name]);

      }


      return callback(null, rendered)
  });

});

我在浏览器中重新加载页面时收到错误消息。

TypeError: Cannot convert object to primitive value
    at RegExp.[Symbol.replace] (native)
    at String.replace (native)
    at D:\docker_root\ifttt\app.js:57:29
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:446:3)

如果我改变了这一行

rendered = rendered.replace(reg, options[name]);

rendered = rendered.replace(reg, 'other string will be fine');

没关系。

我不知道这段代码有什么问题? 为什么它不能取代循环值。

0 个答案:

没有答案