【发布时间】:2020-12-20 09:48:29
【问题描述】:
async function addContact(name, email, phone) {
try {
const data = await fsPromises.readFile(contactsPath, encoding);
const updatedData = data.push({
id: uid,
name: name,
email: email,
phone: phone,
});
await fsPromises.writeFile(contactsPath, JSON.stringify(updatedData));
console.log(updatedData);
} catch (err) {
console.error(err);
}
}
获取类型错误:data.push 不是函数 在 Object.addContact (/Users/jewkuza/Documents/goit-node-hw-01/contacts.js:43:30)
【问题讨论】:
-
你能检查像
console.log(typeof data)这样的数据类型吗?由于 .push 是一个数组函数,我认为数据是对象 -
如果
fsPromises.readFile()只是在fs.readFile()周围有承诺的包装器,那么它返回Promise<string | Buffer>这不是对象数组(!) -
从文件中读取总是读取一个字符串,除非 your
readFile函数以某种方式不... 你是说JSON.parse文件内容...? -
@deceze - 或
Buffer,但在这种情况下是字符串,因为提供了编码(假设encoding不是undefined)。
标签: javascript node.js async-await