windows文件系统中的nodejs路径错误4058 ENOENT
nodejs in windows file system path error 4058 ENOENT
我使用windows
中带有nodejs的文件系统来编写进程日志。我有以下代码
var fs = require('fs');
var config = JSON.parse(fs.readFileSync('config.json', 'utf8'));
var statusLogStream = fs.createWriteStream("../logs/load stat"+(new Date())+".log");
出现错误
{ [Error: ENOENT: no such file or directory, open 'C:'proc'logs'load stat Mon Apr 18 2016 19:09:32 GMT+0530 (India Standard Time).log']
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:''proc''logs''load stat Mon Apr 18 2016 19:09:32 GMT+0530 (India Standard Time).log' }
events.js:141
throw er; // Unhandled 'error' event
^
我尝试用文件夹手动打开文件C:''proc''logs
它不起作用,C:/proc/logs
当我用正斜杠替换双反斜杠时,我可以从资源管理器手动打开文件夹。
如何使其工作
为什么采用double backward slash
而不是forward slash
IMP:上面的代码在linux ubuntu
服务器上运行得很好,但在windows
服务器上运行不好
问题不在于斜杠,而在于如何将日期转换为字符串。
我打赌这会起作用:
var statusLogStream = fs.createWriteStream("../logs/load stat.log");
更新Windows抱怨日期(Mon Apr 18 2016 19**:**09**:**32 GMT+0530 (India Standard Time)
)的字符串表示中有两个冒号
这可能是一个很好的选择:
var myDate = new Date().toJSON().replace(new RegExp(':', 'g'),'.');
// myDate is now "2016-04-18T15.19.21.174Z"
var statusLogStream = fs.createWriteStream("../logs/load stat"+(myDate)+".log");
我遇到了同样的问题。
在我的项目中,当我运行一个express应用程序时,我注意到当前的工作目录是项目的根目录(当我试图读取位于脚本目录中的文件时)。自process.cwd() !== __dirname
以来,它无法运行该文件。
您可以检查它,并在试图读取json文件的脚本中控制台日志process.cwd()
。
我刚把路径改成:
const fs = require('fs');
fs.readFileSync(`${__dirname}''FILENAME`);
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- CKFinder 3为所选文件返回错误的URL
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 铬:“;未捕获的语法错误:意外的标记:"
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 相位器状态未捕获参考错误
- /undefined在我的404错误日志中多次出现
- Javascript未捕获语法错误意外的标识符错误
- javascript:如何在antlr生成的Lexer中进行错误处理
- Angularjs工厂注入错误
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- windows文件系统中的nodejs路径错误4058 ENOENT