簡體   English   中英

路由在node.js中不起作用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM