#javascript #function #file #fs
#javascript #функция #файл #fs
Вопрос:
Я пытаюсь сохранить некоторые данные в файле с помощью fs.writeFileSync, но это не работает, и я не могу понять почему. Он выдает следующую ошибку: Unhandled Rejection (TypeError): fs.writeFileSync is not a function
В моем приложении я использую его следующим образом :
const fs = require('fs');
const stateFile = "./usersStateFile";
const saveLastEventSequenceId = (sequenceId) => {
try {
fs.writeFileSync(stateFile, sequenceId);
} catch (err) {
throw err;
}
};
Это sequenceId
число, и ./usersStateFile
оно не существует, но fs.writeFileSync()
должно создать его, если оно не существует.
В чем может быть проблема?
Комментарии:
1. Сделали ли вы
require
/import
fs
модуль? Если это так, пожалуйста, добавьте инструкцию import в фрагмент кода.2. этот javascript, который вы написали, должен запускаться в браузере? если да, то я не думаю, что это сработает
3. Вы запускаете код в nodejs или используете какой-либо инструмент упаковки, такой как webpack или rollup? Или вы запускаете это в браузере? Потому что браузер не имеет ни требования, ни доступа к fs. Вы можете попробовать сделать
console.log(fs)
и опубликовать результат.4. Я запускаю его в своем браузере с помощью yarn run dev. Тогда как мне это сделать, чтобы заставить его работать?
5. Это никогда, никогда не будет запущено в браузере.
Ответ №1:
Импортируйте fs
модуль следующим образом:
const fs = require('fs'); // or `import * as fs from 'fs'` if you're using ES2015
const stateFile = "./usersStateFile";
const saveLastEventSequenceId = (sequenceId) => {
try {
fs.writeFileSync(stateFile, sequenceId);
} catch (err) {
throw err;
}
};
Вы вызывали fs.writeFileSync()
, не имея имени переменной fs
, определенной в вашей области видимости. В этом случае fs
вычисляется значение undefined
, которое вызвало ошибку при попытке вызвать его существующий член функции.
Комментарии:
1. Я определил fs таким образом, но я все равно получаю ошибку
2. @RobertBogos вы используете NodeJS?
3. Я запускаю это в браузере с помощью yarn run dev
4. @RobertBogos Модуль fs недоступен в браузере. Это относится к узлу и будет работать только в узле. Браузер по соображениям безопасности имеет очень ограниченный доступ к вашей файловой системе … в противном случае вы могли бы посетить любой случайный веб-сайт, и они могли бы читать и записывать все файлы на вашем компьютере, включая файлы с закрытыми ключами, пароли и т. Д.