0

我正在制作 RESTful BlogApp 并且 PUT 方法不起作用。我只收到错误消息:Cannot PUT /blogs/:id。我看不出有什么问题。在我看来一切都很好。如果您发现问题,请告诉我。我知道这可能是一篇糟糕的文章,但这是我的第一篇文章。这是我编码的内容:

<form action="/blogs/<%= blog._id %>?_method=PUT" method="POST" class="ui 
form">
            <div class="field">
                <label for="blog[tittle]">Tittle</label>
                <input name="blog[tittle]" type="text" value="<%= 
blog.tittle %>">
            </div>
            <div class="field">
                <label for="blog[image]">Image URL</label>
                <input name="blog[image]" type="text" value="<%= blog.image 
%>">
            </div>
            <div class="field">
                <label for="blog[body]">Content</label>
                <textarea name="blog[body]"><%= blog.body %></textarea>
            </div>
        <button type="submit" class="ui blue button">Save</button>
    </form>


const express = require('express');
const bodyParser = require('body-parser');
const methodOverride = require('method-override');
const mongoose = require('mongoose');
const app = express();
const port = 3000;
const mongoosePassword = 'bm9kZS1yZXN0LWJsb2c=';

mongoose.connect('mongodb://mesopotamija9:' + mongoosePassword + '@node- 
rest-blog-shard-00-00-xb2tn.mongodb.net:27017,node-rest-blog-shard-00-01- 
xb2tn.mongodb.net:27017,node-rest-blog-shard-00-02- 
xb2tn.mongodb.net:27017/test?ssl=true&replicaSet=node-rest-blog-shard- 
0&authSource=admin&retryWrites=true', {useNewUrlParser: true});

app.set('view engine', 'ejs')
app.use(express.static('public'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(methodOverride('_method'));


app.put('blogs/:id', function(req, res){
Blog.findByIdAndUpdate(req.params.id, req.body.blog, function(err, 
updatedBlog){
    if (err) {
        res.redirect('/blogs');
        console.log(err);
    } else {
        res.redirect('/blogs/' + req.params.id);
        console.log(updatedBlog);
    }
    });
});
4

0 回答 0