Я хочу создать файл конфигурации перед конкретными действиями. Таким образом, это означает, что я создал файл конфигурации в моей папке, сначала не содержащий ничего.Почему не удается перезаписать файл (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 :
Таким образом, объект ответа от моего дб Wich код написал в файле раньше. Я очистился, чтобы проверить файл, если это проблема из-за попытки перезаписать и запустить код снова, и все было хорошо.
Я делал исследования, что может быть моей проблемой, но единственное, что я нашел, это сообщения от людей, пытающихся избежать перезаписывания их файлов, поэтому, я думаю, я ошибаюсь, написав этот файл, потому что перезапись кажется стандартной, а не специальная задача. И this сайт показывает, как использовать fs.writeFile, и я не вижу разницы в моих:
Вы вызываете обратный вызов, прежде чем писать файл. И 'data.toString()' явно ** не **, что вы хотите (может быть, 'JSON.stringify (data)'). –
Я удалил часть с fs.read, потому что это не важно, какой контент был у файла. Поэтому я редактировал мой код, но toString просто пыталась проверить, не изменит ли это что-либо. – nova
Вы все еще вызываете обратный вызов перед тем, как записать файл. –