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(путь [, режим], обратный вызов).

Также проверьте разрешения вашей папки. Подробнее о разрешениях файловой системы читайте здесь

Другие вопросы по тегам