1 경로에서 2 매개 변수를 사용하는 방법 (get) 이것이 내 코드입니다.
router.get('/', function (request, response) {
Result.find(function(error, results){
if (error) console.log(error)
response.render('index', {results:results})
})
})
router.get('/', function (request, response) {
Result.count({stuff:"book"}, function(error, count){
if(error) console.log(error)
response.render('index', {count})
})
})
나는 이렇게 결합하려고 노력했지만 오류가 발생했습니다
router.get('/', function (request, response, next) {
Result.find(function(error, results){
if (error) console.log(error)
response.render('index', {results:results})
}),
Result.count( {stuff:"book"}, function(error, count){
if(error) console.log(error)
response.render('index', {count})
})
})
#note : 그중 하나를 사용하면 완벽하게 실행되지만 (오류 없음) 2 개의 매개 변수가 필요합니다 ..
두 데이터를 모두 템플릿으로 보내려면 하나의 경로 처리기에서 두 데이터를 모두 수집 한 다음 두 데이터를 사용하여 한 res.render()
번 호출해야 합니다.
수신 요청에 대해 하나의 응답 만 보내므로 여러 데이터가 포함 된 템플릿을 렌더링하려면 해당 데이터를 모두 수집하고 res.render()
한 번 호출 하여 필요한 모든 데이터를 전달하고 템플릿이 예상대로 구성되어야합니다. 한 번에 전달할 모든 데이터 :
// use database callbacks and nest the two calls
router.get('/', function(request, response, next) {
Result.find(function(error, results) {
if (error) {
console.log(error)
response.sendStatus(500);
return;
}
Result.count({ stuff: "book" }, function(error, count) {
if (error) {
console.log(error)
response.sendStatus(500);
return;
}
response.render('index', { count, results });
});
});
});
또는 데이터베이스에서 Promise 인터페이스를 사용합니다.
// using Promises and Promise.all() to run both queries in parallel
router.get('/', function(request, response, next) {
Promise.all([Result.find(), Result.count({ stuff: "book" })]).then(([results, count]) => {
response.render('index', { count, results });
}).catch(err => {
console.log(error);
response.sendStatus(500);
});
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다