首页 > 解决方案 > 在 NodeJs 中创建文件夹

问题描述

我正在尝试在 NodeJs 中编写一个基本的 JS 脚本。该脚本将创建一个文件夹,该文件夹的名称为reponses_timestamp。

我已经编写了附加脚本,但是,当它运行时,我收到一条错误消息:

Einval: invalid argument.

有想法该怎么解决这个吗?

测试.js

const fs = require('fs');
const today = new Date();
const date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
const time = today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
const dateTime = date + '_' + time;
const uniqueIdentifier = dateTime;
// const folderName = './responses' + '_' + uniqueIdentifier;

try {
    if (!fs.existsSync('./responses' + '_' + uniqueIdentifier)) {
    fs.mkdirSync('./responses' + '_' + uniqueIdentifier)
  }
} catch (err) {
  console.error(err)
}

在此处输入图像描述

标签: javascriptnode.js

解决方案


如前所述,问题是由于使用了冒号,因为 Windows(也根据您:屏幕截图显示为路径的 Windows)不允许特殊字符。

它没有提到一个解决方案,所以我想提一下你正在做的事情,这可以通过moment js使用两行代码和用冒号替换破折号来轻松实现:

const date = new Date()
const uniqueIdentifier = moment(date).format('YYYY-MM-DD-HH-MM')

console.log('uuid', uniqueIdentifier)

// Result: "uuid" "2021-05-13-11-05"

甚至是单线:

const uniqueIdentifier = moment(new Date()).format('YYYY-MM-DD-HH-MM')

console.log('uuid', uniqueIdentifier)

// Result: "uuid" "2021-05-13-11-05"

推荐阅读