我正在Node.js和Firebase中构建一个URL缩短器,它现在正在运行,但是如果你缩短了一个URL并且它再次缩短了它就会耗尽另一个链接。以下是我在Firebase中的数据:
Database
--> (Short Link)
--> (Long URL)
--> (Views)
--> q0
--> http://google.co.uk/
--> 10
--> g7
--> http://google.co.uk/
--> 3
我希望这样当有人创建新链接时,它会检查现有条目。我不确定这是否会效率低下。
我不确定如何去做,所以我会感激任何帮助。我想从每个条目中获取长URL,并使用正在创建的新条目进行检查。
答案 0 :(得分:0)
添加缩短的网址时,您可以检查它是否存在:
dbRef.once("value", function(snap) {
snap.forEach(function(shortLink) {
//let's say the field for your "Long URL" is called "longLink"
if(newUrl === shortLink.val().longLink) {
return true; //cancel the loop, newUrl is already in the db
}
});
});
您可以添加一个标志,指示是否找到重复项,如果基于该标志找不到任何内容,则将该URL添加到您的数据库。