我在windows
中使用file system with 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
答案 0 :(得分:3)
问题不在于斜杠,而在于如何将日期转换为字符串。
我打赌这会奏效:
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");