使用节点js,mysql和jade构建博客

时间:2016-07-11 14:39:04

标签: javascript mysql node.js

我目前正在尝试使用node.js,mysql和jade构建博客。 我的问题是如何在数据库中保存html或jade格式文本并正确检索它。我想在文本中间使用,但它不起作用。

这些是我制作的代码,

app.js

app.get('/postnew', function(req,res){
    res.render('postnew.jade',{nickname:req.session.nickname});
});

app.post('/postnew', function(req,res){
  var nickname = req.session.nickname;
  var category = req.body.v_category;
  var title = req.body.v_title;
  var contents = req.body.contents;
  var time = moment().tz("Asia/Seoul").format("YYYY-MM-DD");
  var sql = 'INSERT INTO posts (nickname, category, title, content, time) VALUES (?,?,?,?,?)'
  conn.query(sql, [nickname, category, title, contents, time], function(err, rows, fields){
    if(err){
      console.log(err);
      res.status(500).send('Internal Server Error');
    }else{
      res.redirect('/');
    }
  })
})

的MySQL

CREATE TABLE IF NOT EXISTS `posts` (
`id` int(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`nickname` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`category` text COLLATE utf8_unicode_ci NOT NULL,
`title` text COLLATE utf8_unicode_ci NOT NULL,
`content` text COLLATE utf8_unicode_ci NOT NULL,
`likes` int(20) NOT NULL,
`dislikes` int(20) NOT NULL,
`time` text COLLATE utf8_unicode_ci NOT NULL,
`reg_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

postnew.jade

 form(action="/postnew" class="sky-form" method='post')
          header New post
            fieldset
              section
                label.select
                  select(name="v_category")
                    option(value="0" selected disabled)
                      | Category
                    option(value="1")
                      | a
                    option(value="2")
                      | b
                    option(value="3")
                      | c
              section
                label.input
                  input(type="text" name="v_title" placeholder="title")
              section
                label(for="file" class="input input-file")
                  div.button
                    input(type="file" id="file" onchange="this.parentNode.nextSibling.value = this.value")
                    | Browse
                  input(type="text" readonly)
            fieldset
              section
                  label.textarea
                    //textarea(cols="80" id="v_contents" name="v_contents" rows="10")
                    textarea(cols="80" id="contents" name="contents" rows="10")
          footer.text-center
            button(type="submit" class="btn-u") Submit
            button(type="button" class="btn-u btn-u-default" onclick="window.history.back();") Back

index.jade

each post in posts
          h2
              | #{post.title}
          div.blog-post-tags
            ul.list-unstyled.list-inline.blog-info
              li
                i.fa.fa-calendar
                |  #{post.time}
              li
                i.fa.fa-pencil
                |  #{post.nickname}
              li
                i.fa.fa-comments
                |  
              li
                i.fa.fa-folder-open-o
                if post.category == '1'
                  | a
                else if post.category == '2'
                  | b
                else if post.category == '3'
                  | c

          | #{post.content}

当您看到index.jade文件时,我正在尝试检索content列中的内容。当我写一个像hahah这样的帖子并将其保存在数据库中时,它会显示由于|而导致的所有标签在#{post.content}前面,当我擦除时,它会不正确地检索数据。 如果我最好使用其他数据库,并查看引擎,我愿意这样做。所以请告诉我。

感谢您提前帮助我。 如果我的问题含糊不清,请告诉我。 谢谢。

0 个答案:

没有答案