我正在开发一个应用程序,用户可以在其中发布图片。因此,我想确保每次图片都获得唯一的名称。在PHP中,我使用timestamp与userId串联。但是在node.js中,我没有获得将时间戳转换为字符串的方法。因此,请提出一种确保我的文件不会出现重复名称的方法。

最佳答案

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

示例代码:

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

将UUID用作唯一标识符是安全的。您可以在SO上找到更多相关信息,例如How unique is UUID?

替代解决方案(其中要求名称唯一性)将使用另一个node.js库:flake-idgen,它基于当前时间戳生成无冲突的ID。该解决方案可保证唯一编号。

该解决方案也非常有效,允许每个生成器在毫秒内生成多达4096个id(您最多可以有1024个唯一生成器)。

我希望这会有所帮助。

关于node.js - 上载文件时为其赋予唯一名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20516520/

10-16 14:33