发出GET请求时,节点路由不起作用

时间:2018-01-19 21:59:00

标签: javascript node.js mongodb express

伙计们,我正在通过Node和Express上的udemy课程,但我已经陷入困境。我正在使用GET方法ruest实现路由。该路线的形式为"露营地/:id"但是,上面有一条名为" / campgrounds / new"这是提交表格。这是工作网络应用程序的链接。 和工作应用程序的网页

http://webdevcamp-miatech.c9users.io/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

1 个答案:

答案 0 :(得分:1)

在露营地之前缺少斜线

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!");
})