节点应用程序获取“错误:EACCES:权限被拒绝,mkdir '.tmp' [英] node application getting "Error: EACCES: permission denied, mkdir '.tmp'

查看:66
本文介绍了节点应用程序获取“错误:EACCES:权限被拒绝,mkdir '.tmp'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的树莓派上运行 node-red 并试图获得一个我自己编写的节点.该节点在我的 Windows PC 上运行良好,但我还无法让它在我的 pi 上运行.

I am running node-red on my raspberry pi and am trying to get a node that I wrote myself working on it. The node works fine on my windows PC but I haven't been able to get it working on my pi yet.

我的节点使用 mailin 来设置 SMTP 服务器,但我认为这不是问题包.

My node uses mailin to setup an SMTP server but I don't think it's an issue with that package.

mailin 正在尝试创建一个临时文件夹,但它显然没有权限.我如何授予节点创建此文件夹所需的权限?

mailin is trying to create a temporary folder but it obviously doesn't have permissions. How do I give node the permissions it needs to be able to create this folder?

完全错误:

5 Apr 20:06:22 - [info] Starting flows
shell.js: internal error
Error: EACCES: permission denied, mkdir '.tmp'
at Error (native)
at Object.fs.mkdirSync (fs.js:794:18)
at mkdirSyncRecursive (/home/pi/.node-red/node_modules/node-red-contrib-mailin-smtp/node_modules/mailin/node_modules/shelljs/src/mkdir.js:11:8)
at /home/pi/.node-red/node_modules/node-red-contrib-mailin-smtp/node_modules/mailin/node_modules/shelljs/src/mkdir.js:63:7
at Array.forEach (native)
at Object._mkdir (/home/pi/.node-red/node_modules/node-red-contrib-mailin-smtp/node_modules/mailin/node_modules/shelljs/src/mkdir.js:48:8)
at Object.mkdir (/home/pi/.node-red/node_modules/node-red-contrib-mailin-smtp/node_modules/mailin/node_modules/shelljs/src/common.js:186:23)
at Mailin.start (/home/pi/.node-red/node_modules/node-red-contrib-mailin-smtp/node_modules/mailin/lib/mailin.js:73:15)
at new MailinSMTP (/home/pi/.node-red/node_modules/node-red-contrib-mailin-smtp/mailinSMTP.js:15:10)
at createNode (/usr/lib/node_modules/node-red/red/runtime/nodes/flows/Flow.js:276:18)
at Flow.start (/usr/lib/node_modules/node-red/red/runtime/nodes/flows/Flow.js:64:35)
at start (/usr/lib/node_modules/node-red/red/runtime/nodes/flows/index.js:264:29)
at tryCatchReject (/usr/lib/node_modules/node-red/node_modules/when/lib/makePromise.js:845:30)
at runContinuation1 (/usr/lib/node_modules/node-red/node_modules/when/lib/makePromise.js:804:4)
at Fulfilled.when (/usr/lib/node_modules/node-red/node_modules/when/lib/makePromise.js:592:4)
at Pending.run (/usr/lib/node_modules/node-red/node_modules/when/lib/makePromise.js:483:13)
nodered.service: main process exited, code=exited, status=1/FAILURE

非常感谢

推荐答案

这里的问题是 mailin 试图在节点的根文件夹中创建一个不允许的临时文件夹.尽管我能够传递不同的文件夹以用于临时文件,但查看 mailin 的代码.我通过向配置对象添加一个 tmp 属性并将其设置为 os.tempdir()/mailin

The problem here was that mailin was trying to create a temp folder within the root folder for node which was not allowed. Looking at the code for mailin though I was able to pass a different folder to use for temporary files. I did this by adding a tmp property to the config object and set it to os.tempdir()/mailin

这篇关于节点应用程序获取“错误:EACCES:权限被拒绝,mkdir '.tmp'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆