Node.js 6.0中appendFile的${user.username}无法识别$符号,如何写入用户名?
问题解答:Node.js 6中模板字符串未解析的原因
嘿,这个问题我太熟啦!你遇到的问题核心是字符串类型的区别,Node.js 6其实已经支持ES6的模板字符串了,但你用错了引号类型~
为什么美元符号$不被识别?
在JavaScript里,只有用**反引号()**包裹的字符串才是模板字符串,才能通过${变量名}的语法插入变量值。而你用的双引号(")属于普通字符串,里面的${user.username}`会被当成纯文本直接写入文件,不会被解析成对应的用户名。
修改后的正确代码
把包裹变量的双引号换成反引号就行,另外建议加上错误处理的回调函数(这是Node.js异步API的最佳实践):
const os = require('os'); const fs = require('fs'); var user = os.userInfo(); fs.appendFile("message.txt", `${user.username}`, (err) => { if (err) throw err; console.log('用户名已成功写入文件!'); });
额外小提示
Node.js 6对ES6特性的支持是比较完善的,模板字符串完全没问题,但要注意:
- 模板字符串必须用反引号,不能用单/双引号
- 如果需要插入复杂表达式,也可以放在
${}里,比如${user.username.toUpperCase()}
内容的提问来源于stack exchange,提问作者user8690050
相关产品推荐
相关产品推荐

