伙计们,我正在Node和Express上接受udemy课程,我陷入困境。我正在使用GET方法ruest实现路由。该路线的格式为“ campgrounds /:id”,但是,上面有一条名为“ / campgrounds / new”的路线,这是提交表单。这是可正常使用的网络应用程序的链接。
和正在运行的应用程序的网页

http://webdevcamp-miatech.c9users.io/campgrounds


当您单击任何按钮“更多信息”时,它现在将重定向到“ campgrounds /:id”,我只是在测试路线并打印一些文本。
 app.js文件

var express = require("express"),
    app = express(),
    bodyParser = require("body-parser"),
    mongoose = require("mongoose");

//connect mongoose db
mongoose.connect("mongodb://localhost/yelp_camp");
app.use(bodyParser.urlencoded({extended: true})); //parsing html request
app.set("view engine", "ejs"); //handling vies through ejs pages

//schema/model for data to be inserted in db
var campgroundSchema = new mongoose.Schema({
    name: String,
    image: String,
    description: String
})

var Campground = mongoose.model("Campground", campgroundSchema);
Campground.create({
    name: "Salmon Creek",
    image: "https://farm6.staticflickr.com/5786/20607281024_5c7b3635cc.jpg",
    description: "This is a huge granite hill, no bathroom campground"
}, function(err, campground) {
    if(err) {
        console.log(err);
    }
    else {
        console.log("Created Campground");
        console.log(campground);
    }
})

//default route
app.get("/", function(req, res) {
    res.render("landing");
})

app.get("/campgrounds", function(req, res) {
    Campground.find({}, function(err, allCampgrounds) {
        if(err) {
            console.log(err);
        }
        else {
            res.render("campgrounds", {campgrounds: allCampgrounds});
        }
    })
});

//method to add to database and redirect to campgrounds
app.post("/campgrounds", function(req, res) {
    // res.send("you hit post route");
    //get data from form and add to campgrounds array
    var name = req.body.name;
    var imgUrl = req.body.image;
    var newCampGround = {name: name, image: imgUrl};
    //adding to database table
    Campground.create(newCampGround, function(err, newlyCreated) {
        if(err) {
            console.log(err);
        }
        else {
            res.redirect("/campgrounds");
            console.log(newlyCreated);
        }
    });
});

app.get("/campgrounds/new", function(req, res) {
    res.render("new.ejs");
})

//displaying especific campground
app.get("campgrounds/:id", function(req, res) {
    //find campground with id
    // Campground.FindById(req.param)
    // res.render("single.ejs");
    res.send("This will be the single page!");
})


//starting server
app.listen(process.env.PORT, process.env.IP, function() {
    console.log("server started!..");
});


这是我在c9.io上的项目

https://ide.c9.io/miatech/webdevcamp

最佳答案

在露营地前缺少斜线

app.get("/campgrounds/:id", function(req, res) {
    //find campground with id
    // Campground.FindById(req.param)
    // res.render("single.ejs");
    res.send("This will be the single page!");
})

09-25 16:59