Javascript 用于数据库查找的While循环

Javascript 用于数据库查找的While循环,javascript,node.js,Javascript,Node.js,我们设计了我们的网站,这样我们就可以使用博客的slug来获取其内容,例如www.mysite.com/blog/blog_1 “blog_1”是鼻涕虫(我知道我在侮辱你的智慧) 该段塞通过以下简单方法确定: let slug = blog.title.toLowerCase().split(' ').join('-') 所以像“这是我的博客标题”这样的东西应该是“这是我的博客标题” 但是,我们不能有重复的slug。因此,我试着这样做: let slug = blog.title.toLower

我们设计了我们的网站,这样我们就可以使用博客的slug来获取其内容,例如
www.mysite.com/blog/blog_1

“blog_1”是鼻涕虫(我知道我在侮辱你的智慧)

该段塞通过以下简单方法确定:

let slug = blog.title.toLowerCase().split(' ').join('-')
所以像“这是我的博客标题”这样的东西应该是“这是我的博客标题”

但是,我们不能有重复的slug。因此,我试着这样做:

let slug = blog.title.toLowerCase().split(' ').join('-')
let i

do {
  slug += i
  i++
}
while (await Blog.find({ slug })
然而,它似乎挂断了。你甚至可以在while循环中使用wait吗?我只想将slug名称增加1,直到数据库调用返回null,此时我可以将该slug用于blog

有什么想法吗


谢谢大家!

是的,您可以在do..while循环中使用wait。例如:

异步功能测试(一){ 返回新承诺((解决、拒绝)=>{ 设置超时(()=>{ 解析(i<10) }, 1000) }) } 异步函数main(){ 设i=0 做{ 控制台日志(i) 我++ }while(等待测试(i)) }
main()

let counter= [0];
let slug;
for( let i of counter){
  slug+=i; 
  let result = await Blog.find({ slug })
  if(result){
    counter.push(i+=1)
  }
}