应用程序必须将日志数据存储到网络驱动器。当驱动器托管在Windows下时,一切正常。当驱动器托管在Mac下时,读/写是可以的,但append会获得EPERM,因此日志根本不起作用。代码非常简单
fs.appendFileSync('xxx.txt', 'zzzzzzzz');如何正确追加数据?文件通常太大,无法加载到内存中。
更新:读-写-删除-创建是Ok!仅使用append打开失败
发布于 2015-12-16 19:25:47
当你对文件/文件夹没有足够的权限时,我会使用Luc Gendriks.EPERM。尝试以下操作
代码:
fs.chmod('xxx.txt', 777, function(err){
if(err){
console.log(err);
return;
}
fs.appendFileSync('xxx.txt', 'zzzzzzzz');
});参考
https://nodejs.org/api/fs.html#fs_fs_chmodsync_path_mode https://nodejs.org/api/fs.html#fs_fs_appendfilesync_file_data_options
希望这能有所帮助。
发布于 2015-12-14 01:17:27
EPERM代表Error - PERMission:不允许nodejs写入日志文件。检查应用程序是否有权访问日志文件,并对其进行更改,以便节点应用程序可以写入日志文件。
在mac上,您可以执行chmod 777 somefile.log (请注意,这允许访问您的文件系统的任何人都可以写入日志文件)。
可能是windows服务器创建了日志文件,而不允许mac服务器访问它(因为它不是所有者,写权限也不是公共的)。
发布于 2015-12-18 18:12:29
该文件是否正在被其他进程使用?(因此访问/操作被拒绝)
https://stackoverflow.com/questions/34161432
复制相似问题