EACCES: в Node JS отказано в разрешении
Я получаю ниже ошибку при записи файла (имя файла книга) с Node.js, не могли бы вы помочь?
Error: EACCES: permission denied, open '/book'
at Object.openSync (fs.js:443:3)
at Object.writeFileSync (fs.js:1163:35)
at Object.<anonymous> (/home/ubuntu/remoteserver/ionicappGate.js:375:6)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:266:19)
Код как ниже
const fs = require('fs');
const path = "/book";
//do whatever required after initialize
fs.writeFileSync(path, "hello book");
app.use("/", router);
app.listen(4000, () => console.log('Platform Server running on port 4000'))
3 ответа
Вы пытаетесь записать в корень своей файловой системы "/book". Это, вероятно, защищено от записи (по умолчанию в Linux). Если вы действительно хотите писать в этот каталог, убедитесь, что у пользователя, выполняющего процесс узла, есть права на запись в эту папку. В противном случае измените путь относительно сценария, например./book, и снова убедитесь, что пользователь, выполняющий процесс узла, имеет разрешения на запись в эту папку.
Я надеюсь, что приведенная ниже команда сценария может решить вашу проблему:
chmod -R 755 book/*
Попробуйте проверить права доступа к файлу с помощью fs.access(путь [, режим], обратный вызов).
Также проверьте разрешения вашей папки. Подробнее о разрешениях файловой системы читайте здесь