-2
Node.js와 MongoDB를 사용하여 shortenUrl API를 작성했습니다.nodej에서 두 개의 mongodb 쿼리를 동시에 작동시킬 수 있습니까?
나는 증가하는 ID를 저장하기 위해 콜렉션을 사용하고 있습니다.
서버는 항상 최신 numberID에 대한 database
,
요청합니다
- 사용자가 단축 URL을 요청 할 때마다, 그 다음 base62 변환을한다.
그러나 Nodejs의 비동기 기능 때문에 증가하는 ID를 얻고 새 URL 쌍을 삽입하는 완료 시간은 확실하지 않습니다. 때때로 서버는 ID가 증가하지 않고 URL 쌍을 삽입합니다.
app.post("/" , function(req , res) { const curLongUrl = req.body.longUrl; const data = { longUrl : curLongUrl, shortUrl : "" }; const IDurl = "https://shortenurl-rustyblade.c9users.io/"; mongo.connect(url , function(err , db) { if(err) { return console.log(err); } const increment = db.collection("autoIncrement"); increment.findOne({"function" : "incrementKey"} , function(err , docs) { if(err) { return console.log(err); } const curID = docs.increment; console.log(curID); const curShortUrl = IDurl + curID; data.shortUrl = curShortUrl; db.close(); }); }); mongo.connect(url , function(err , db) { if(err) { return console.log(err); } const col = db.collection("urlTable"); col.insert(data , function(err , document) { if(err) { return console.log(err); } console.log(JSON.stringify(data)); db.close(); res.send(JSON.stringify(data)); }); }); //res.send(JSON.stringify(data)); });
문서를 읽고 비동기 성 노드를 검색하십시오.이 유형의 질문은 .check async method and promises를 참조하십시오. 코딩을 시작하기 전에 먼저 이것을 보게 될 것입니다. –