2017-08-12 49 views
0

私はプログラミングに新しく、個々の投稿を表示するための/ post/postID/postTitleというルートの1つを使ってニュース/フォーラムサイトを作成したいと考えています。私がそれを試してみました:それはうまくいった:postIDそれは働いたが、今私が追加した:postTitle私は言うURLに行く: "TypeError:プロパティ '未定義のpostID'を読み取ることができません。TypeError:未定義の 'postID'プロパティを読み取ることができません

マイapp.js:

var express = require("express") 
    app = express() 
    bodyParser = require("body-parser"); 

app.use(express.static("public")); 
app.use(bodyParser.urlencoded({extended: false})); 
app.set("view engine", "ejs"); 

// ROUTES 

// Root 
app.get("/", function(req, res){ 
    res.render("index"); 
}); 

// Login 
app.get("/login", function(req, res){ 
    res.render("login"); 
}); 

// Register 
app.get("/register", function(req, res){ 
    res.render("register"); 
}); 

// Home 
app.get("/home", function(req, res){ 
    res.render("home"); 
}); 

// Posts 
app.get("/posts", function(req, res){ 
    res.render("posts"); 
}); 

// Post 
app.get("/post/:postID/:postTitle", function(req, res){ 
var postID = req.params.postID; 
var postTitle = req.params.postTitle; 

res.render("post", {postID: postID},{postTitle: postTitle}); 
}); 



// SERVER 
app.listen(4000, function(error){ 
    if(error){ 
    console.log("OH NOES, SERVER CAN'T START!"); 
    console.log(error); 
    } else { 
    console.log("Server has started."); 
    } 
}); 

エラー:

TypeError: Cannot read property 'postID' of undefined 
    at C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\app.js:38:26 
    at Layer.handle [as handle_request] (C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\layer.js:95:5) 
    at next (C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\route.js:137:13) 
    at Route.dispatch (C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\route.js:112:3) 
    at Layer.handle [as handle_request] (C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\layer.js:95:5) 
    at C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\index.js:281:22 
    at param (C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\index.js:354:14) 
    at param (C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\index.js:365:14) 
    at Function.process_params (C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\index.js:410:3) 
    at next (C:\Users\jayth\Desktop\Centurion\Projects\August 2017\Wabbit.gg - #PWGG08102017\Coding\node_modules\express\lib\router\index.js:275:10) 
+0

申し訳ありません、これは私がそれを試してみる前のものです。 //ポストapp.get( "/ポスト/:postID /:postTitle"、関数(誤差、REQ、RES){ VAR postID = req.params.postID; VAR postTitle = req.params.postTitle。 (エラー)であれば{ はconsole.log( "ページが見つかりませんでした。");} 他{ はconsole.log( "ページが見つかりました。");} res.render(「POST "、{postID:postID}、{postTitle:postTitle}); }); –

+0

代わりに投稿を編集しました。 –

+1

あなたはルートのために何を入力していますか?または、ルートを試す前にコードが失敗していますか? –

答えて

-1

あなたは(res.sendを使用することができます)の代わりにres.renderの()とpostIDを取得するためにこれを使用して。ここにコードを投稿します。res.send("postID:"+postID+" "+"postTitle:"+postTitle);

+0

これはOPの問題を解決しません。 OPはポストの詳細をテンプレートに描画しているので、 'render'関数を呼び出しています。 – mscheker

関連する問題