我目前正在尝试使用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}前面,当我擦除时,它会不正确地检索数据。
如果我最好使用其他数据库,并查看引擎,我愿意这样做。所以请告诉我。
感谢您提前帮助我。 如果我的问题含糊不清,请告诉我。 谢谢。