[英]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.