이없는 나는 다음과 같은 코드를 가지고 : I가 할 수있는 일Sequelize의 발견은 성공 기능
C:\Users\lowerkey\Desktop\emasc\server\controllers\Employee.js:85
model.Person.find(employees[i].personID).success (function(person){
^TypeError: Object [object Object] has no method 'success'
at [object Object].<anonymous> (C:\Users\lowerkey\Desktop\emasc\server\contr ollers\Employee.js:85:46)
at [object Object].emit (events.js:67:17)
at [object Object].<anonymous> (C:\Users\lowerkey\Desktop\emasc\node_modules \sequelize\lib\query-interface.js:245:17)
at [object Object].emit (events.js:88:20)
at [object Object].<anonymous> (C:\Users\lowerkey\Desktop\emasc\node_modules \sequelize\lib\dialects\mysql\query.js:78:10)
at C:\Users\lowerkey\Desktop\emasc\node_modules\sequelize\lib\dialects\mysql \query.js:32:51
at Query.<anonymous> (C:\Users\lowerkey\Desktop\emasc\node_modules\sequelize \node_modules\mysql\lib\client.js:108:11)
at Query.emit (events.js:64:17)
at Query._handlePacket (C:\Users\lowerkey\Desktop\emasc\node_modules\sequeli ze\node_modules\mysql\lib\query.js:51:14)
at Client._handlePacket (C:\Users\lowerkey\Desktop\emasc\node_modules\sequel ize\node_modules\mysql\lib\client.js:312:14)
:
app.get('/autocompleteEmployees', function(req, res){
var term = req.param('term');
model.Employee.findAll().success(function(employees){
var responseData = [];
for(var i=0; i<employees.length; i++){
console.log('i: ' + i);
model.Person.find(employees[i].personID).success(function(person){
if((person.lastName + ', ' + person.firstName).toLower().indexOf(term.toLower()) > -1){
responseData.push({
label: person.lastName + ', ' + person.firstName,
value: employees[i].id
});
}
if(i + 1 == employees.length){
res.send(JSON.stringify(repsonseData));
}
});
}
});
});
을 GET/autocompleteEmployees 경로가 호출되면, 나는 다음과 같은 오류가 발생합니다 오류를 제거 하시겠습니까?
모델 정의를 추가 할 수 있습니까? 또한 모델 변수에 모델을 바인딩하는 선도 있습니까? – sdepold
솔직히 말해서, 나는 창문에 후유증을 시도한 적이 한번도 없었다. D – sdepold
알아 냈어. 직원 [i] .personID 변수가 null이었다. 내가 비동기식 자료를 다루고 있다는 것을 알았습니다. for 루프의 코드가 호출 될 즈음에는 이미 employees.length보다 큽니다. 해결책은 비동기 성을 고려한 별도의 카운터를 갖는 것이 었습니다. 모호한 설명에 대해 유감스럽게 생각합니다 ... 며칠이 지났습니다. 그것을 들여다 주셔서 감사합니다! – lowerkey