为什么不能覆盖文件 (fs node.js)?
why can't overwrite file (fs node.js)?
我想在执行特定操作之前创建一个配置文件。所以这意味着我在我的文件夹中创建了一个配置文件,起初什么都不包含。
然后我运行下面的代码:
db.getData(function(err,data) { //it's an dynamodb don't know if this matter
var entry = {
dataItems: data.Items[0].items,
timestamp: data.LastEvaluatedKey.timestamp.N
};
try {
fs.writeFile("./config", JSON.stringify(entry), function (err) {
if(err) {
throw new Error(err);
}
callback(); //want to know when file is filled with data
});
} catch (err) {
throw err;
}
});
文件现在有内容。但是我不想每次执行这个函数之前都清除文件,它应该被覆盖。如果我再次 运行 此代码,我会收到一条错误消息:
function (exports, require, module, __filename, __dirname) { {"data":{"S":"[{\
^^^^^^
SyntaxError: Unexpected token :
所以对象是我的数据库的响应,代码之前写在文件中。我清除了文件以测试这是否是尝试覆盖和 运行 代码的问题,并且一切都很好。
我正在研究可能是我的问题,但我唯一发现的是人们发的帖子试图避免覆盖他们的文件,所以我想我写这个文件时犯了一个错误,因为覆盖似乎是标准的而不是一项特殊的任务。 this 网站显示了如何使用 fs.writeFile,我看不出有什么不同:
我已经将 db.getData 函数模拟为 return 有效数据并且它正在运行。
var fs = require('fs');
var db = {
getData: function(callback) {
var data = {"Items": [{"items": "entry"}], "LastEvaluatedKey": {"timestamp": {"N": 12323234}}};
callback(null, data);
}
}
var callback = () => console.log("It worked");
db.getData(function(err,data) { //it's an dynamodb don't know if this matter
var entry = {
dataItems: data.Items[0].items,
timestamp: data.LastEvaluatedKey.timestamp.N
};
try {
fs.writeFile("./config", JSON.stringify(entry), function (err) {
if(err) {
throw new Error(err);
}
callback(); //want to know when file is filled with data
});
} catch (err) {
throw err;
}
});
似乎您的数据无法正确序列化?这也可以解释口译员对 Unexpected token :
的抱怨
我想在执行特定操作之前创建一个配置文件。所以这意味着我在我的文件夹中创建了一个配置文件,起初什么都不包含。
然后我运行下面的代码:
db.getData(function(err,data) { //it's an dynamodb don't know if this matter
var entry = {
dataItems: data.Items[0].items,
timestamp: data.LastEvaluatedKey.timestamp.N
};
try {
fs.writeFile("./config", JSON.stringify(entry), function (err) {
if(err) {
throw new Error(err);
}
callback(); //want to know when file is filled with data
});
} catch (err) {
throw err;
}
});
文件现在有内容。但是我不想每次执行这个函数之前都清除文件,它应该被覆盖。如果我再次 运行 此代码,我会收到一条错误消息:
function (exports, require, module, __filename, __dirname) { {"data":{"S":"[{\
^^^^^^
SyntaxError: Unexpected token :
所以对象是我的数据库的响应,代码之前写在文件中。我清除了文件以测试这是否是尝试覆盖和 运行 代码的问题,并且一切都很好。
我正在研究可能是我的问题,但我唯一发现的是人们发的帖子试图避免覆盖他们的文件,所以我想我写这个文件时犯了一个错误,因为覆盖似乎是标准的而不是一项特殊的任务。 this 网站显示了如何使用 fs.writeFile,我看不出有什么不同:
我已经将 db.getData 函数模拟为 return 有效数据并且它正在运行。
var fs = require('fs');
var db = {
getData: function(callback) {
var data = {"Items": [{"items": "entry"}], "LastEvaluatedKey": {"timestamp": {"N": 12323234}}};
callback(null, data);
}
}
var callback = () => console.log("It worked");
db.getData(function(err,data) { //it's an dynamodb don't know if this matter
var entry = {
dataItems: data.Items[0].items,
timestamp: data.LastEvaluatedKey.timestamp.N
};
try {
fs.writeFile("./config", JSON.stringify(entry), function (err) {
if(err) {
throw new Error(err);
}
callback(); //want to know when file is filled with data
});
} catch (err) {
throw err;
}
});
似乎您的数据无法正确序列化?这也可以解释口译员对 Unexpected token :