//jshint esversion:6
const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const { redirect } = require("express/lib/response");
const { forEach } = require("lodash");
const homeStartingContent = "Lacus vel facilisis volutpat est velit egestas dui id ornare. Semper auctor neq";
const aboutContent = "Hac habitasse platea dictumst vestibulum rhoncus est pellentesque..";
const contactContent = "Scelerisque eleifend donec pretium vulputate sapien.";
let posts = [];
const app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));
app.get("/", function(req, res){
res.render("home",{startingContent:homeStartingContent,posts:posts});
})
app.get("/about", function(req, res){
res.render("about",{aboutContent:aboutContent});
})
app.get("/contact", function(req, res){
res.render("contact ",{contactContent:contactContent});
})
app.get("/compose", function(req, res){
res.render("compose");
})
app.post("/compose", function(req,res){
const post = {
title:req.body.postTitle,
content:req.body.postBody
};
posts.push(post);
console.log(posts)
res.redirect("/");
})
app.get("/posts/:postName",function(req, res){
const requestedTitle = req.params.postName;
posts.forEach(function(post){
console.log(requestedTitle);
const storedTitle =req.body.postTitle;
console.log(storedTitle);
if(storedTitle===requestedTitle){
console.log("match found");
}
else{
console.log("Not a match");
}
});
});
app.listen(3000, function() {
console.log("Server started on port 3000");
});
我遇到了問題, app.get("/posts/:postName",function(req, res){問題 const storedTitle =req.body.postTitle;
是每當我在瀏覽器中運行 http://localhost:3000/posts/Test 時,我想將輸出作為找到的匹配項,但是當我通過控制臺登錄 storageTitle 進行除錯時,我將其作為未定義而不是 Test . output screenshot:
output image
這些是/compose ejs檔案的圖片。
撰寫.ejs
uj5u.com熱心網友回復:
而不是const storedTitle =req.body.postTitle;你應該使用const storedTitle = post.title;
uj5u.com熱心網友回復:
您進入undefined日志是因為以下幾行:
const storedTitle =req.body.postTitle;
console.log(storedTitle);
因為,GETrequests 沒有body.
更改這些行如下:
const storedTitle = post.title;
console.log(storedTitle);
我想這是來自/compose處理程式的復制/粘貼錯誤:-)
再會!
uj5u.com熱心網友回復:
您正在使用路由引數(:postName)。要在 express 上訪問它,您需要使用 request.params 如下:
console.log(req.params.postName)
之后您應該會在日志中看到輸出
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/465364.html
標籤:javascript 节点.js 表示
