[英]route is not working in node.js
該營地數據在使用mongodb的過程中在此Web應用程序上運行,數據庫已創建(命名為“ campit”),集合被命名為campground(但mongo照常將其命名為campgrounds)。集合包括名稱和圖片。 路由(即“ / create”)不起作用 , 通過轉到URL“ localhost:3000 / create.ejs”,其顯示無法獲取/index.ejs,這是我的代碼,這是app.js文件
var express=require("express");
var app=express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended:true}));
var mongoose = require('mongoose');
mongoose.connect("mongodb://localhost/campit");
var campgroundSchema=new mongoose.Schema({
name:String,
image:String
});
app.get("/create",function(req,res){
campground.find({},function(err,campground){
if(err){
console.log(err)
}
else{
console.log("successfully shown");
res.render("index.ejs",{campgrounds:campground})
}
});
app.listen("3000",function(){
console.log("listening from server 3000");
});
這是index.ejs文件,應該顯示
<div class="container">
<div class="row no-gutters">
<% campgrounds.forEach(function(camp){ %>
<div class="col col-lg-4 img-thumbnail">
<img class="but" height="75%" width="100%" src="<%=camp.image%>" alt="image">
<div class="text-center">
<h6><%= camp.name %> </h6>
<button class="btn btn-outline-info " type="button" name="more info"> more info</button>
</div>
</div>
<% }); %>
</div>
</div>
編輯
當我去/ create route時,它表明campgrounds.forEach不是函數錯誤……整個代碼都相同,渲染變量.....出了點問題,並確保露營地包含數據。 編輯關閉
任何幫助都將得到高度重視。 謝謝.....
您輸入的網址錯誤。 如您在代碼中所見。
app.get("/create", function(req,res){
campground.find({},function(err,campground){
if(err){
console.log(err)
}
else{
console.log("successfully shown");
res.render("index.ejs",{campgrounds:campground})
}
}
});
您應該使用的路由是/ create而不是/create.ejs 。 index.ejs是您訪問/創建路線時呈現的模板
使用此網址localhost:3000 / create而不是localhost:3000 / create.ejs :)
在Javascript文件中,您編寫了app.get('/ create') 。 create.ejs僅是模板的名稱。 路線的路徑和模板的名稱不必相同。
嘗試使用:
var router = express.Router();
router.route('/create')
.get(function(req,res){
campground.find({},function(err,campground){
if(err){
console.log(err)
}
else{
console.log("successfully shown");
res.render("index.ejs",{campgrounds:campground})
}
});
app.use('', router);
您忘記設置視圖引擎,在app.use(bodyParser.urlencoded({extended:true}));
之后使用下面的代碼app.use(bodyParser.urlencoded({extended:true}));
用它
app.set("view engine", "ejs");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.