在上传文件时为文件指定唯一名称

Tir*_*ndu 11 node.js

我正在开发一个应用程序,用户可以在其中发布图片.所以我想确保每次pic获得唯一名称.在PHP中,我用来将时间戳与userId连接起来.但是在node.js中我没有得到将时间戳转换为字符串的方法.所以请建议一种方法来确保我的文件不会出现重复的名称.

Tom*_*Tom 11

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

示例代码:

var uuidv4 = require('uuid/v4');
var filename = uuidv4() + '.png'
Run Code Online (Sandbox Code Playgroud)

使用UUID作为唯一标识符是安全的.您可以在SO上找到更多内容,例如UUID有多独特?

替代解决方案(其中名称唯一性是必需的)将使用另一个node.js库:flake-idgen,它根据当前时间戳生成无冲突的ID.该解决方案可确保唯一数字

该解决方案也非常高效,允许每个生成器在一毫秒内生成多达4096个ID(最多可以有1024个独特的生成器).

我希望这会有所帮助.


dam*_*hat 6

在节点中:

timestamp = new Date().getTime().toString();
Run Code Online (Sandbox Code Playgroud)


Adr*_*mer 6

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

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' 
Run Code Online (Sandbox Code Playgroud)