Javascript TypeError:无法读取属性';posted';未定义的
我对编程相当陌生,我想制作一个新闻/论坛站点,用于实践,其中一个路径是/post/postd/postTitle以查看单个帖子。当我尝试使用only:posted时,它起了作用,但现在我添加了:postTitle,每当我转到URL时,它都会显示: “TypeError:无法读取未定义的属性'postID'。” 我的app.js:Javascript TypeError:无法读取属性';posted';未定义的,javascript,node.js,express,Javascript,Node.js,Express,我对编程相当陌生,我想制作一个新闻/论坛站点,用于实践,其中一个路径是/post/postd/postTitle以查看单个帖子。当我尝试使用only:posted时,它起了作用,但现在我添加了:postTitle,每当我转到URL时,它都会显示: “TypeError:无法读取未定义的属性'postID'。” 我的app.js: var express = require("express") app = express() bodyParser = require("body-
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)
您可以使用res.send()而不是res.render()。并使用它将postID和postTitle放在一起。下面是代码
res.send(“postID:+postID+”+“+”postTitle:+postTitle)代码>抱歉,这是我尝试测试它之前的情况。//Post-app.get(“/Post/:postID/:postTitle”,函数(error,req,res){var-postID=req.params.postID;var-postTitle=req.params.postTitle;if(error){console.log(“找不到页面”);}else{console.log(“找到页面”);}res render(“Post”,{postID:postTitle},{postTitle};});我只是编辑了这篇文章。你在为路线输入什么?或者,在您尝试路由之前,代码就失败了?这并不能解决OP的问题。OP正在调用render
函数,因为他正在呈现包含帖子细节的模板。