0
모델을 데이터베이스에 저장하기 전에 고유 한 ID를 생성합니다. 그래서 난 임의의 고유 ID를 생성하고 해당 ID를 사용할 수 있는지 확인하는 메서드를 호출하는. 여기에 내가 사용하고 while 루프입니다 그러나 그것은 결코 while 루프에서 중단하지 : 나는 비동기 라이브러리를 사용하지만 해요asyncc.js가 비동기 호출을 순환합니다.
beforeValidation: function(values, next) {
var counter = 0;
var slug = SlugService.generate_slug();
console.log(counter + ":" + slug);
async.whilst(
function() { return values.slug === undefined && counter <= 10; },
function (callback) {
counter++;
Lists.findOne({slug: slug}).exec(function(err, list) {
if (list === undefined) values.slug = slug;
slug = SlugService.generate_slug();
console.log(counter + ":" + slug);
});
},
function (err) {
console.log("err");
values.slug = slug;
}
);
next();
}
가 작동하지 않는 것 같습니다. 그냥 next()를 호출합니다. 루프가 끝나기 전에.
는 또한 서비스 클래스를 생성하고 거기에이 방법을 추가하지만이 나던 중 하나가 작동하는 것 :function checkSlug(method, counter) {
slug = SlugService.generate_slug();
method({ slug: slug }).exec(function(err, list) {
if (list !== undefined && counter <= 10) {
counter++;
checkSlug();
}
});
}
내가 너무 내 모든 모델에 걸쳐이 공유 할 수있는 작업 옵션 # 2를 취득하는 것을 선호합니다.