0
저는 Nodejs에 익숙하지 않습니다. 코드를 제출하고 레코드가 있는지 확인하기 위해 레코드를 교차 검사하여 db (mongo) 레코드를 찾으려고합니다.특정 코드로 찾기 결과가 null 인 경우
"코드가 있습니다. 계속하십시오"및 "코드가 없습니다"라는 최종 결과를 얻는 방법에 대해서는 분명하지 않습니다.
userProvider.js :
UserProvider.prototype.findByCode = function(code, callback) {
this.getCollection(function(error, user_collection) {
user_collection.findOne({code: code}, function(error, result) {
callback(error, result)
});
});
}
가져 오기 컬렉션 userProvider.js에 속하는 :
UserProvider.prototype.getCollection= function(callback) {
this.db.collection('users', function(error, user_collection) {
if(error) callback(error);
else callback(null, user_collection);
});
};
응용 프로그램을
이
내가 내 손보는의 결과로 지금까지 무엇을 가지고 .js :app.post('/game/code', function(req, res) {
if (req.param('code')) {
userProvider.findByCode(req.param('code'), function(error, result) {
console.log(error);
console.log(result);
});
}
});
그리고 코드를 제출하는 옥 형태 : 코드에서 PARAM ('코드') 결과를 기록
extends layout
block content
h1= "Gimme a code"
div
form(method="post")
div
div
span.label code :
input(type="text", name="code", id="code")
div
input(type="submit", value="Verbind")
콘솔. 그래서 저는 확신합니다. 그렇다면 null이 반환되는 이유는 무엇입니까?
해상도가 findByCode 통화에서 콜백 아닌 객체로 할 다양한 것들에 대한 아웃 http://expressjs.com/api.html#res.status
확인합니다. 오류 및 결과는 다음과 같습니다. – CaptainCarl
콜백 내에서 재정의하지 않으면 부모의 res에 액세스 할 수 있습니다. javascript의 범위/클로저에 대한 정보를 확인하십시오. 그것의 전문가가 아니지만 위의 작품 : http://stackoverflow.com/questions/12968098/can-ajax-callback-function-see-variables-from-parent-function – maethorr
Ofcourse하지만 findByCode 함수의 결과를 원한다. 그럼에도 불구하고. 코드에 의해 발견 된 객체를 보유하고 있습니다 ;-) – CaptainCarl