ExpressJS 逗号分隔值

ExpressJS Comma Separating Values

我正在尝试为我的记录创建一个标签系统,并假设我可以通过在我的 post 方法上使用 req.body.tags.trim().split(","); 创建单独的标签,但所有的逗号分隔我提供的值显示为一个 URL.

正在写入的值:

显示并悬停的值:

POST方法:

router.route('/admin/posts/create')

    // START POST method
        .post(function(req, res) {

            console.log("New instance");

            var blogpost = new Blogpost(); // create a new instance of a Blogpost model

            blogpost.title = req.body.title; // set the blog title
            blogpost.featureImage = req.body.featureImage; // set the blog image
            blogpost.blogUrl = blogpost.title.toLowerCase().replace(/\s+/g,"-");
            blogpost.author = req.body.author; // set the author name
            blogpost.tagline = req.body.tagline; // set the tagline
            blogpost.content = req.body.content; // set the blog content
            blogpost.category = req.body.category; // set the category
            blogpost.tags = req.body.tags.trim().split(","); // set the tags
                //Save Blog Post
                blogpost.save(function(err) {
                    if (err)
                        res.send(err);

                    res.redirect(303, '/'); //NEEDS TO BE CHANGED
                });

        }) // END POST method


        .get(isLoggedIn, function(req, res, blogpost) {
            res.render('pages/blogpost-create', {
              blogpost : blogpost
            });
        });

博客post-create.ejs:

 <form action="/admin/posts/create" method="POST">
                    Header Image: <input type="file" id="files"/>
                    <p id="status">Please select a file</p>
                    <div id="preview"><img src="/images/event-placeholder.png"></div>
                    <input type="hidden" id="feature-image" name="featureImage" value="/images/event-placeholder.png" />
                    Title: <input type="text" name="title" required></input><br>
                    Author: 
                        <select name="author">
                            <option value="Author">Blog Author</option>
                        </select><br>
                    Category: 
                        <select name="category">
                            <option value="Test 1">Test 1</option>
                            <option value="Test 2">Test 2</option>
                            <option value="Test 3">Test 3</option>
                            <option value="Test 4">Test 4</option>
                        </select><br>
                    Tagline: <input type="text" maxlength="155" name="tagline" required><br>
                    Content:<br>
                    <textarea name="content" id="blog-editor" rows="10" cols="80">

                    </textarea>
                    <br>
                    Tags: <input type="text" name="tags" required>
                    <br>
<input type="submit" value="Submit">

Blogpost.ejs(显示值的位置):

<header>
    <% include ../partials/header %>
</header>

<div class="container">
    <div class="col-md-12">
        <div id="blog-content">
            <h1><%= blogpost.title %></h1>
            <img src="<%= blogpost.featureImage %>" class="img-responsive" id="blogpost-feature-image">
            <h3 class="blog-date"><%= blogpost.dateString %></h3>
            <h3 class="blog-category"><%= blogpost.category %></h3>
            <h3 class="blog-tagline"><i><%= blogpost.tagline %></i></h3>
            <p><%- blogpost.content %></p>
            <a href="<%= blogpost.tags %>"><%= blogpost.tags %></a>
        </div>
    </div>
</div>

是的,您正在将它们全部写入您的 ejs 模板中的一个锚点。

像这样:

<ul>
    <% for(var i=0; i<blog.tags.length; i++) { %>
        <li>
            <a href='/tags/<%= blog.tags[i] %>'>
                <%= blog.tags[i] %>
            </a>
        </li>
    <% } %>
</ul>

我假设您的保存逻辑如您所想的那样成功保存了数组,但这也值得检查