gpt4 book ai didi

javascript - nodejs在windows文件系统路径错误4058 ENOENT

转载 作者:可可西里 更新时间:2023-11-01 11:25:53 24 4
gpt4 key购买 nike

我正在使用 file system with nodejswindows 中写入进程日志。我有以下代码

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通过正斜杠双反斜杠我可以从资源管理器手动打开文件夹。

如何让它工作

为什么使用双反斜线而不是正斜线

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");

关于javascript - nodejs在windows文件系统路径错误4058 ENOENT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36696605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com