【发布时间】:2014-06-13 04:02:39
【问题描述】:
function generate(count) {
var founded = false,
_sym = 'abcdefghijklmnopqrstuvwxyz1234567890',
str = '';
while(!founded) {
for(var i = 0; i < count; i++) {
str += _sym[parseInt(Math.random() * (_sym.length))];
}
base.getID(string, function(err, res) {
if(!res.length) {
founded = true; // How to do it?
}
});
}
return str;
}
如何使用数据库查询回调设置变量值?我该怎么做?
【问题讨论】:
-
@JamesAllardice,我需要了解如何通过数据库查询来完成。对不起,谢谢。
-
这个问题被错误地标记为重复。链接的问题回答了如何在通用 javascript 中执行此操作;此问题中评分最高的答案特定于 node.js。
-
我很乐意将其粘贴为答案:
var hexstring = crypto.randomBytes(16).toString("hex");后跟var guidstring = hexstring.substring(0,8) + "-" + hexstring.substring(8,12) + "-" + hexstring.substring(12,16) + "-" + hexstring.substring(16,20) + "-" + hexstring.substring(20); -
这是
new mongo.ObjectID();和手动stackoverflow.com/a/56106999/4701635 的好答案 -
@selbie 您的结果只是看起来像一个 UUID,并不总是有效的 UUID。这可能会破坏任何下游代码的假设。如果您只需要一个随机标识符,请使用您的
hextring,这是完美的。如果您需要 UUID,请使用正确格式/版本的库创建一个。
标签: javascript node.js express