Ich bin ziemlich neu in der Programmierung und möchte eine Nachrichten/Forum-Seite für die Praxis erstellen, mit einer der Routen ist/post/postID/postTitle, um den einzelnen Beitrag anzuzeigen. Als ich es mit nur versuchte: postID es funktionierte, aber jetzt, dass ich fügte hinzu: postTitle, wenn ich auf die URL gehe, heißt es: "TypeError: Kann Eigenschaft 'postID' von undefined nicht lesen."TypeError: Kann die Eigenschaft 'postID' von undefined nicht lesen
Mein 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.");
}
});
Der Fehler:.
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)
Sorry, das ist, was es war, bevor ich es getestet habe. // Beitrag app.get ("/ Post /: postID /: postTitle", Funktion (Fehler, erf, res) {var postID = req.params.postID; var postTitle = req.params.postTitle; if (Fehler) { console.log ("Seite konnte nicht gefunden werden."); } else { console.log ("Seite gefunden wurde.");} res.render ("post ", {postID: postID}, {postTitle: postTitle}); }); –
Ich habe gerade den Post bearbeitet. –
Was schreibst du für eine Route ein? Oder versagt der Code, bevor Sie die Route ausprobieren können? –