在上传文件的同时赋予文件唯一的名称

我正在开发一个应用程序,在其中用户可以张贴图片。 所以我想确保每一次pic得到独一无二的名字。 在PHP中,我使用连接时间戳与userId。 但在node.js我没有得到的方法来将时间戳转换为string。 所以好心的build议一种方法来确保我的文件不重名。

其中一个解决scheme是使用UUID作为文件名。 但是这当然取决于您的应用程序需求或约束(命名约定等)。 但是,如果UUID作为文件名是可以接受的,我推荐使用node-uuid库(非常容易使用!)。

示例代码:

 var uuidv4 = require('uuid/v4'); var filename = uuidv4() + '.png' 

使用UUID作为唯一标识符是安全的。 你可以find更多关于这个如UUID有多独特?

替代解决scheme (其中名称唯一性是一个要求)将使用另一个node.js库: flake-idgen根据当前的时间戳生成无冲突ID。 该解决scheme保证唯一的数字

该解决scheme也非常高效,允许每个发生器以毫秒为单位生成4096个ID(最多可以有1024个唯一的生成器)。

我希望这会有所帮助。

在节点中:

 timestamp = new Date().getTime().toString(); 

如果你想使用时间戳uuid的使用这个

 var uuid = require('uuid'); // Generate a v1 (time-based) id uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' // Generate a v4 (random) id uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'