2017-07-28 1 views
0

私はnodejsプロジェクトをmongodbと統合しました。ここで私は学生リストをデータベースから取得したヒスイファイルを作成しました。各生徒記録に対して、編集ボタンがあります。したがって、ユーザーが編集ボタンをクリックすると、ユーザーはその学生のレコードを編集できるフォームを表示する別の玉(editstudent.jade)ファイルにユーザーをリダイレクトする必要があります。他のjadeファイルのJadeファイルから渡されたアクセス変数

これを達成するために、studentList.jadeファイルに次の表を作成しました。

studentList.jade

extends layout 

block content 
    h1. 
     Student List 

    table 
     tr 
      th. 
       Name 
      th. 
       Age 
      th. 
       Contact 
      th. 
       Edit Student 
      th. 
       Delete Student 
     each student, i in studentlist 
      tr 
       td(id='studentname') #{student.name} 
       td #{student.age} 
       td 
        a(href="mailto:#{student.email}")=student.email 
       td 
        button(onclick='editstudent("#{student.name}")')= "Edit" 
       td 
        button(onclick='removestudent()')= "Remove" 
    script. 
     function editstudent(gh) { 
      alert("Edit "+gh+"'s Profile"); 
      window.location.href = '/editstudent?gh=' + gh; 
     } 

出力

output

それは最初の引数&として名を渡し、次のように警告をポップアップ表示編集ボタンをクリックします。

ポップアップ警告

popup

そして私は、私はindex.js

index.jsから呼び出していますeditstudentページのタイトルとして、この名前を表示したいと思います

var express = require('express'); 
var router = express.Router(); 

/* GET home page. */ 
router.get('/', function(req, res, next) { 
    res.render('index', { title: 'Express' }); 
}); 

/* GET student welcome page. */ 
router.get('/studentIndex', function(req, res, next) { 
    res.render('studentIndex', { title: 'Student Portal' }); 
}); 

/*GET the studentList page */ 
router.get('/studentList', function(req, res) { 
    var db = req.db; 
    var collection = db.get('studentcollection'); 
    collection.find({},{},function(e,docs){ 
     res.render ('studentList', { 
     "studentlist" : docs}); 
    }); 
}); 

/* GET the editStudent page */ 
router.get('/editstudent', function(req, res) { 
    res.render('editstudent', { title : gh}); 
}); 

module.exports = router; 

しかし、私は現在、

GHは私が渡すことができますどのように

gh not defined

editstudent.jade

extends layout 

block content 
    h1 = title 
    p Welcome editor 
    button(onclick = 'backToList()')="Back" 

    script. 
     function backToList() { 
      window.location.href = '/studentList' 
     } 

任意の提案を定義されていないことを言及するエラーを取得していますこの変数は私のリダイレクトされたページ(editstudent.jade)になりますeciated。

答えて

1

のparamsクエリからghを得る:/editstudent?gh=' + gh

router.get('/editstudent', function(req, res) { 
    let gh = req.query.gh; 
    res.render('editstudent', { title : gh}); 
}); 
+0

ありがとうございます。出来た –

1

ghがコードで定義されていません。あなたがパスにそれを送っているので、あなたは、要求パスからghをお読みください

/* GET the editStudent page */ 
router.get('/editstudent', function(req, res) { 
    res.render('editstudent', { title : req.query.gh}); 
}); 
+0

感謝を。とった! –

関連する問題