1
Express에 pug를 통해 클라이언트에 응답을 보내는 방법은 하나의 페이지에 대해 두 번 렌더링하거나 템플릿 엔진을 통해 클라이언트에 비동기 데이터를 보낼 수있는 방법이 있습니까?템플릿 엔진을 통해 클라이언트에 비동기 데이터를 보낼 수있는 방법이 있습니까?
다음은 응답이 HTML 콘텐츠로 직접 전송되는 코드이며 pug으로 바꾸고 싶습니다. 이제 문제는 response.write()이 먼저 발생하고 res.end()이 약속을 해결 한 후에 실행되고 클라이언트의 응답을 같은 순서로 실행하려고합니다. 두 이벤트 모두 시간 차이가 있기 때문에 한 번에 모두. 도움이 필요합니까?
console.log('File saved to', filename);
response.write('File downloaded to Server in DIR: '+filename+"<br>");
promiseCounter++;
if (promiseCounter == 15) {
afterDownloading();
}
}).catch((err) => {
afterDownloading();
throw err;
});
}
}
function afterDownloading()
{
var hrefString = "<br><a href='http://localhost:3000/displayKeywords'>Click here</a> to see all the keywords"+
" Entered yet!<br>";
response.end("Downloading Completed"+hrefString);
console.log("Downloading Completed!");
mongo.insert(fileDetail);
}
나는 요점을 얻지 못했습니다. 그 템플릿 엔진의 렌더링에 대해. 비동기 적으로 Ajax를 통해 요청을 보내는 경우에도 단일 페이지 인 pug 페이지를 렌더링해야합니다. 어떻게 다른 페이지의 다른 데이터를 비동기 적으로 렌더링 할 수 있습니까? – user8929168
@ user8929168 먼저 pug를 사용하여 단일 페이지를 렌더링합니다. 그런 다음 해당 페이지에 추가 할 각 정보에 대해 별도의 Ajax 요청을 시작합니다. 이 아약스 요청은 json/html 또는 다른 형식으로 서버에서 각각의 데이터를 가져온 다음 html 페이지를 업데이트하고이 새로운 정보를 추가 할 수 있습니다. – Robin