Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.js与EJS应用程序错误:编辑表单未指明文章的当前类别_Javascript_Node.js_Express_Ejs - Fatal编程技术网

Javascript Express.js与EJS应用程序错误:编辑表单未指明文章的当前类别

Javascript Express.js与EJS应用程序错误:编辑表单未指明文章的当前类别,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我正在使用、和MongoDB开发一个(单击链接查看GitHub回购) 我有帖子和帖子类别,每个都有自己的收藏 在编辑帖子表单(以及添加新帖子表单)中,有一个包含可用类别的选择框: <% if (categories) { %> <div class="form-group"> <label for="categores">Choose a post category</label> <select id

我正在使用、和MongoDB开发一个(单击链接查看GitHub回购)

我有帖子和帖子类别,每个都有自己的收藏

在编辑帖子表单(以及添加新帖子表单)中,有一个包含可用类别的选择框:

<% if (categories) { %>
    <div class="form-group">
        <label for="categores">Choose a post category</label>
        <select id="categores" name="category" class="form-control">
            <% categories.forEach(function(category, index) { %>
                <option value="<%= category._id %>" selected="<%= category._id == post.category._id ? 'selected' : ''; %>"><%= category.cat_name %></option>
            <% }); %>
        </select>
   </div>
<% } %>

我做错了什么?

请确保您正在比较两个字符串:

<option value="<%= category._id %>" <%= category._id.toString() == post.category._id.toString() ? 'selected' : ''; %>><%= category.cat_name %></option>

exports.editPost = (req, res, next) => {
    const postId = req.params.id;

    Post.findById(postId, function(err, post) {
        const categories = Category.find({}, (err, categories) => {
            if (err) {
                console.log('Error: ', err);
            } else {
                res.render('admin/editpost', {
                    layout: 'admin/layout',
                    website_name: 'MEAN Blog',
                    page_heading: 'Dashboard',
                    page_subheading: 'Edit Post',
                    categories: categories,
                    post: post
                });
            }
        });
    });
}

exports.updatePost = (req, res, next) => {

    const query = {
        _id: req.params.id
    }

    const form = {
        titleholder: req.body.title,
        excerptholder: req.body.excerpt,
        bodyholder: req.body.body
    };

    const errors = validationResult(req);

    const post = {};

    post._id = req.params.id;
    post.title = req.body.title;
    post.short_description = req.body.excerpt
    post.full_text = req.body.body;
    post.category = req.body.category;
    if (req.file) {
        post.post_image = req.file.filename;
    }

    if (!errors.isEmpty()) {
        req.flash('danger', errors.array())
        res.render('admin/editpost', {
            layout: 'admin/layout',
            website_name: 'MEAN Blog',
            page_heading: 'Dashboard',
            page_subheading: 'Edit Post',
            form: form,
            post: post
        });
    } else {
        Post.update(query, post, function(err) {
            if (err) {
                console.log(err);
                return;
            } else {
                req.flash('success', "The post was successfully updated");
                req.session.save(() => res.redirect('/dashboard'));
            }
        });
    }
}
<option value="<%= category._id %>" <%= category._id.toString() == post.category._id.toString() ? 'selected' : ''; %>><%= category.cat_name %></option>