폼에서 데이터를 전송하려고합니다. 컨트롤러에서 3 가지 가능성이 있습니다. 이미 존재하고 데이터가 잘못되어 성공적으로 생성되었습니다. . 그런 다음 프런트 엔드에 가치를 반환하고 싶습니다. 모든 것이 정상이며 {result : 0}을 반환한다고 가정 해 봅시다. 그런 다음 ejs를 사용하여 'result'값을 확인하고 0이면 (프런트 엔드) javascript 함수를 호출하려고합니다.Sails.js에서 백엔드에서 프론트 엔드로 값을 보내고 EJS로 확인
EJS :
<html>
<head>
<script src="functions.js">
</head>
<body>
<form action="/test" method="POST">
<input type="text" name="data" />
<button>Send</button>
</form>
<div id="message">
<% if (typeof result !== 'undefined' && result === 0){ %><script>showMessage();</script><% } %>
</div>
</body>
</html>
자바 (프론트 엔드)
function showMessage() {
document.getElementById('message').innerText = "sometext";
}
자바 (백엔드)
module.exports = {
postData: function (req, res) {
Data.findOne({data: req.param('data')}).exec(function (err, data) {
if (err) {
return {result : 1};
}
if (data) {
return {result: 2};
}
if (!data) {
Data.create({data: req.param('data')}, function (err, data) {
if (err) {
return {result: 1};
}
return {result: 0};
});
}
});
}
}
res.view()를 사용하여 데이터를 보내는 방법을 알고 있지만, 페이지를 다시로드하고 싶지는 않습니다. 프론트 엔드에 뭔가를 보내고 몇 가지 조치를 취하고 싶습니다.
감사합니다.
서버 쪽 및 클라이언트 쪽 렌더링 이해. 유스 케이스에 AJAX를 사용할 수 있습니다. 대부분 서버 측 렌더링을 위해 EJS를 사용하고 있으므로 반환 값을 확인하기 위해 프론트 엔드에서 EJS를 사용할 수 없습니다. – Sangharsh
네 말이 맞아. 나는 EJS 서버 측을 사용하여 클라이언트에게 무언가를 렌더링한다. 현재 사용하고있는 것은 "res.view ('test', {result : 0})를 반환합니다." 작동하지 않으면 EJS를 사용하여 결과 값을 확인할 수 있지만 페이지를 다시로드하면 경험이 방해가됩니다. sails.js 컨트롤러가 수행하고있는 기능 (EJS 포함)을 사용할 수 있습니까 (DB와 그 모든 것을 확인하십시오)? 그것은 안전하지 않을까요? – Devgom