저는 얼마 전 ExpressJS를 사용했습니다. 몽구스를 사용하는 법을 배우고 있습니다.호출 할 인수로 model.find를 전달하면 오류가 발생합니다.
내 쿼리의 콜백에서 : function (error, data) {...}이 오류를 처리하는 데 반복되는 코드가 많습니다. 이를 위해 쿼리를 호출하고 오류를 처리 한 다음 데이터를 콜백에 전달하는 checkQuery 함수를 만들었습니다.
아래의 코드 중 일부는 실제 질문과 관련이 없으므로 제거, 단순화 및 주석 처리되었습니다.
checkedQuery(User.getNames, function(userNames) {
// ... Handles the user names
return;
}
: 나는 아무 문제가없는이 두 가지 기능을 사용
UserSchema.statics.getNames = function(callback) {
var User = mongoose.model('User');
User.find({}, 'name', callback);
}
: 내 몽구스 모델에서 다른 곳
function checkedQuery(queryFn, callback) {
queryFn(function(error, data) {
if (error) {
// ServerErrorResponse(....); Handles sending out the proper json error response
return;
}
callback(data);
});
}
나는 단순히 모든 사용자 이름의 목록을 가져옵니다 기능을 정의
내가 가진 문제는 check.Query에 User.find 스트레이트 함수를 전달하려고 할 때입니다.
여기, 나는 몽구스 모듈에서 오류가 발생하고있다 :
TypeError: Cannot read property 'discriminatorMapping' of undefined
at find (/mypath/server/node_modules/mongoose/lib/model.js:955:18)
마지막으로는, 실제 코드에, 난 단지 콜백 기능을 User.find 호출하면 유효하지 않으며 원인이 있습니다 싶습니다
오류 : User.find (기능 (오류, 사용자) { //...Handle 오류와 사용자 데이터 }
나는 범위 지정이 원인이되는 인자에 문제가 의심하지만 난 ' 확실하지 않아. 어떤 도움을 많이 주시면 감사하겠습니다!
또한 오류 점검 쿼리 작성을위한 더 나은 패턴을 보여주고 기능적으로 몽구스 쿼리를 통과하는 예제를 제시 할 수 있다면 입증 된 대안을 갖고 싶습니다.
'User.find'대신'User.find.bind (User)'를 전달하십시오. – idbehold
감사합니다. – ty10r