ES6从文件内容中进行string插值
我遇到了ES6中的string插值function。 它工作,如果我在代码中定义的原始string。 但我想从文件中读取原始string,然后replace占位符。 怎么做?
file.txt的
hello ${customer.name}
节点JS
var customer = {name: 'sid'}; var data = fs.readFileSync("file.txt","utf8"); // what should go here so that data is 'Hello sid'?
唯一的方法是在文件中escape
模板string,并在稍后进行eval
,请参阅此问题以获取更多详细信息。
您可以构build一个单线程而不是加载模板引擎。 这将用来自对象的值replace$ {field}。
var obj = {a: 'one', b: 'two'}; var templ = '${a}, ${b}'; templ.replace(/\${([^}]*)}/g, (r,k)=>obj[k]); // 'one, two'
我决定去es6-template-strings
因为它看起来很简单。 彼得的build议使用eval
也适用,但我有我的项目使用eval
一些限制
var data = fs.readFileSync("file.txt","utf8"); var compiled = compile(data); var content = resolveToString(compiled, customer);
- 为什么这个生成器返回一个函数而不是一个值
- 在Node.js中将三个不同的函数映射到Observable
- 在使用ES6类和生成器函数时,如何避免使用`self = this`这个hack?
- React / Node / Express / Webpack – 必须返回一个有效的React元素(或null)
- 如何将bunyan日志loggingfunction绑定到ES6中的类function?
- 实施Promise.series作为Promise.all的替代品
- ECMAScript 6function在Node.js 0.12中可用
- ReactJS包括或导入自定义或外部JavaScript文件
- SyntaxError:meteor包中意外的保留字'export'