프로젝트 용 위키 백과 클론을 만들고 있습니다. 내 초기 편집 경로는 다음과 같습니다.req.params를 수집하지 않는 라우팅 문제
router.get('/edit/:id', function(req, res){
var id = req.params.id;
console.log(id);
models.Page.findById(id, function(err, doc){
console.log(doc);
res.render('edit', {page: doc});
});
});
내가하고있는 일은 id 매개 변수의 ID가 일치하는 페이지에 대한 수정 페이지보기를 만드는 것입니다. 이 때까지 작동 이 ...
나는이 새로운 경로를 추가했다 : 나는 활성이 경로가있을 때 이제router.get('/:url_name/:id', function(req,res){
var id = req.params.id;
models.Page.findById(id, function(err, doc){
res.render('show_page', {page: doc});
});
});
을 내 편집/: id 매개 변수를 수집하지 않습니다 ID 페이지 경로 (REQ .params.id).
이것이 작동하지 않는 이유와 내가 오류가 발생하지 않아 디버깅을 시작해야하는 곳에서 길을 잃어 버렸습니다. 여전히 편집/ID 페이지로 이동하지만 console.log (id) 나는 값을받지 못한다. 또한 {edit : edit} 뷰에 전달하는 {page : doc}을 (를) 찾을 수 없습니다.
누구든지 통찰력이나 디버그를 시작할 수있는 장소를 제공 할 수 있다면 감사하게 생각합니다. : url_name/: id route가 활성화되어 있지 않으면 edit/: id 라우트가 정상적으로 동작합니다 (req.params.id가 id를 획득).
현재 경로 -
나는 나의 app.js에 var wiki_routes = require('./routes/wiki');
을 추가하고 그 길에 내가 가진 : 그들은 코드에서 발생하는
// **** URL ROUTES ****
router.get('/', function(req, res) {
models.Page.find(function(err, docs) {
res.render('index', { docs: docs });
});
});
router.get('/:url_name', function(req, res){
var url_name = req.params.url_name;
var isUpdated = req.query.updated;
var updated = (isUpdated === 'true')?true:false;
models.Page.find({url_name: url_name}, function(err, page){
if(page.length > 1){
console.log(page);
res.render('disambiguation', {pages: page, updated: updated });
} else {
console.log(page);
res.render('show_page', {page: page[0], updated: updated});
}
});
});
router.get('/:url_name/:id', function(req,res){
var id = req.params.id;
models.Page.findById(id, function(err, doc){
res.render('show_page', {page: doc});
});
});
// **** EDIT ROUTES ****
router.get('/edit/:id', function(req, res){
var id = req.params.id;
console.log(id);
models.Page.findById(id, function(err, doc){
console.log(doc);
res.render('edit', {page: doc});
});
});
router.post('/edit_submit/:id', function(req, res){
var id = req.params.id;
var new_title = req.body.title;
var new_body = req.body.body;
console.log(req.body);
models.Page.findByIdAndUpdate(id, {title: new_title, body: new_body }, function(err, docs){
// redirects to the wiki page
res.redirect('/wiki/'+ docs.url_name +'?updated=true');
});
});
// **** DELETE ROUTE ****
router.get('/delete/:id', function(req, res){
var id = req.params.id;
models.Page.findByIdAndRemove(id, function(err, data){
res.redirect('/?deleted=true');
});
});
편집 경로 앞에 새로운 경로를 넣었습니까? 모든 경로를 잡으면 – adeneo
안녕하세요, adeneo 님, 경로 편집 전에 '새 경로'가 무슨 뜻인지 잘 모르겠습니다. 여기 내/위키 라우터의 모든 경로가 있습니다. 나는 내 질문에 그것들을 추가했다. – HelloWorld
장소를 바꾸고, 편집 경로를 따라 잡을 수 없도록'edit' 경로 다음에'router.get ('/ : url_name/: id'..')을 움직여 편집하십시오. – adeneo