2017-11-28 9 views
0

ejs 엔진과 함께 sailsJS를 사용하고 있으며 사용자가 메시지가있는 입력 페이지로 다시 리디렉션하려고합니다 (유효성 검사 오류 ...). PHP에서 laravel로 이것을 쉽게 사용했는데 ('status', 'Profile updated!');) with (return '(dashboard')) -> withSailsJS : 변수가있는 컨트롤러 동작으로 리디렉션

즉 : 사용자를 다시 리디렉션해야합니다. 이 사이트는 존재하지 않습니다.

find : function(req,res){ 
    var id = req.param(íd'); 
    Site.find(id).where({isDeleted : null }) 
    .exec(function(err,siteFound){ 
     if(err) console.log(err); 
     if(siteFound) { 
      return res.view('site/show', { 
       site : siteFound 
      }); 
     } else { 
      return res.redirect('/site'); 
      } 
    }) 
}, 

나는 돛에 문서를 검색했지만 아무 것도 발견되지 않았습니다. SailsJS에서 어떻게 수행 할 수 있습니까?

감사

UPDATE : 나는 sails-hook-flash를 설치하여 정확하게 필요한 것을 발견했다. 필요한 기능은 flash messages입니다. 도움을 주셔서 감사합니다.

인용문은

+0

돛보기/ejs 템플릿에서'status' 변수를 사용 하시겠습니까? – arbuthnott

+0

리디렉션 된보기에 표시 할 사용자 지정 메시지를 전달할 수 있어야합니다. –

답변

0

res.notfound("my message string"); 바로 그것을해야합니까? 사용자 지정 응답을 요구하는 ajax 요청 인 경우 res.json()으로 작업 할 수 있습니다. res 개체 HEREnotfound 응답 HERE에 대한 문서를 읽으십시오.

0

진정한 브라우저 리디렉션을 원한다면 나는 말할 수 없습니다. 브라우저 리디렉션이란 "이 다른 URL 사용"이라는 메시지를 브라우저로 다시 보낸 다음 응용 프로그램에서 새로운 데이터 (새로운 의미 : reqres 개체)를 가져 오는 것을 의미합니다.

return res.redirect('/site?message=notfound'); 

그런 다음 사이트에 대한 귀하의 잡 컨트롤러 액션 당신이 req.param('message')를 통해이 액세스 할 수 있습니다 : 이것은 당신이 원하는 경우에, 나는 데이터를 전달하기위한 유일한 옵션은 같은 쿼리 문자열 말하고 싶지만. 그냥 리디렉션 브라우저를받지 않고 지금을 적절한 내용 을 반환 할 경우


그러나, 당신은 당신이 원하는대로보기 또는 컨트롤러 액션 호출 할 수 있습니다

if(siteFound) { 
    return res.view('site/show', { 
     site : siteFound 
    }); 
} else { 
    // uncomment one of the options: 

    // ONE: return another view 
    // return res.view('site/notfound, {requested: id}); 

    // TWO: pass to another controller action in same controller 
    // req.options.message = 'not found'; 
    // return module.exports.someOtherAction(req, res); 

    // THREE: pass to a controller action in another controller 
    // req.options.message = 'not found'; 
    // var OtherController = require('./OtherController'); 
    // return OtherController.someOtherAction(req, res); 
} 

그 중 하나를 세 가지 옵션은 사용자가 요청한 URL ("/ site/abc123"또는 기타)에서 사용자를 유지하지만 지정한 내용을 표시합니다.