快递报关引擎视图replace内容错误
我试图在“fs.readFile”加载的时候replace内容。
这是我的代码
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');
一切都会安好的。
我不知道这个代码有什么问题? 为什么它不能取代循环值。