文章功能
来源:互联网 发布:网络视频版权 编辑:程序博客网 时间:2024/05/22 07:54
文章发布+前台显示+网址处理
数据库建立文章表
CREATE TABLE `node`.`article`( `id` INT(11) NOT NULL AUTO_INCREMENT, `title` varchar(64) NOT NULL , `tag` varchar(64) NOT NULL , `author` varchar(64) NOT NULL , `content` longtext NOT NULL , `time` varchar(64) NOT NULL , PRIMARY KEY (`id`) )ENGINE = InnoDB CHARSET = utf8;
文章发布
访问/admin/article
admin.js
const express = require("express"), router = express.Router(), sql = require('../module/mysql.js');router.get("/",(req,res)=>{// 检测是否是管理员 if(req.session.admin){ res.render('admin/admin.ejs'); }else{ res.send("请登陆管理员账号"); }});router.get('/user',(req,res)=>{ // 访问admin/user sql('SELECT * FROM `user`',(err,data)=>{ if(err){ res.send('数据查询错误'); return; }; // console.log(data);//[{},{}] res.locals.data = data; res.render('admin/user'); });})router.post('/user',(req,res)=>{ let id = req.body.id; // console.log(id); // 删除. sql('DELETE FROM `user` WHERE `id` = ?', [id] ,(err,data)=>{ if(err){ res.send('数据删除错误'); return; }; res.json({ result:'删除成功' }) });})// 修改router.get('/user/update',(req,res)=>{ // console.log(req.query); //传值 sql('SELECT * FROM `user` WHERE `id` = ? ',[req.query.id],(err,data)=>{ if(err){ res.send('数据查询错误'); return; }; res.locals.data = data; res.render('admin/update'); });});// 'UPDATE `book`.`user` SET `name` = ?, `admin` = ? WHERE `user`.`id` = ?;'router.post('/user/update',(req,res)=>{ // console.log(req.body); const id = req.body.id, name = req.body.name || "", //空白处理 //字符串 admin = req.body.admin || "0"; // console.log(name,admin,id); sql('update `user` set `name`= ? ,`admin` = ? where `id`= ?;',[name,admin,id],(err,data)=>{ if(err){ res.send('数据查询错误'); return; }; res.send("修改成功<a href='/admin/user'>返回用户管理</a>"); })})router.get('/article',(req,res)=>{ res.render('admin/article');});router.post('/article',(req,res)=>{ let title = req.body.title, tag = req.body.tag, author = req.body.author, content = req.body.content, time = new Date().toLocaleString(); //substring(0,10) 2017-5-28 // console.log(title,tag,author,content,time); sql('INSERT INTO article (`id`, `title`, `tag` ,`author`,`content`,`time`) VALUES (0,?,?,?,?,?)',[title,tag,author,content,time],(err,data)=>{ if (err) { res.send('数据查询错误'); return; }; res.json({ result : "上传成功" }); });});module.exports = router;
admin/article.ejs
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>article</title> <script src="/js/jquery.js"></script></head><body> 文章标题: <input type="text" name="title" class="title"> 文章标签: <input type="text" name="tag" class="tag"> 作者: <input type="text" name="author" class="author"> 内容: <input type="text" name="content" class="content"> <button class="button">发表</button> <script> $('.button').click(function(){ $.ajax({ url:'/admin/article', type:'post', dataType:'json', data:{ title:$('.title').val(), tag:$('.tag').val(), author:$('.author').val(), content:$('.content').val() }, success(data){ console.log(data); }, err(data){ alert("发表失败"); } }) }) </script></body></html>
最新文章展示
数据截取查询 倒序
// LIMIT 截取 [a,b) 的数据SELECT * FROM `shuoshuo` LIMIT 0,3// 根据id进行倒序, 从0开始 截取3个数据SELECT * FROM `shuoshuo` order by id desc LIMIT 0,3
首页文章截取最新6条
index.js
const express = require('express'), router = express.Router(), sql = require("../module/mysql");// sql('INSERT INTO `phone` (`id`,`number`, `name`, `phone`) VALUES (0,?,?,?)')router.get('/',(req,res)=>{ // 访问首页. // console.log(typeof req.session.admin); //string res.locals.admin = req.session.admin; // LIMIT 查询几条到第几条数据 // order by id desc 根据id从 新 => 旧进行排序 sql('SELECT * FROM `article` order by id desc LIMIT 0,6',(err,data)=>{ if(err){ res.send("数据错误"); return; } res.render('index.ejs',{data:data}); })});//访问articlerouter.get('/article',(req,res)=>{ sql('select * from article',(err,data)=>{ if(err){ res.send('错误'); return; } res.render('article',{data:data}); });});router.get('/article/:id.html',(req,res)=>{ // 访问/article/1.html // 新的传值方法 :param //req.params 同时接收get , post , 其它 提交数据的形式 console.log(req.params); sql('select * from article where id = ?',[req.params.id],(err,data)=>{ if(data.length == 0){ // res.status(404)设置状态码 res.render('err.ejs'); return; } res.render('article',{data:data}); });});// 退出router.get('/logout',(req,res)=>{ // 清除cookie res.clearCookie('login'); // 跳转到首页 redirect网址重定向 res.redirect('/');})// 管理用户admin.jsrouter.use('/admin',require('./admin'));// 注册交给login.jsrouter.use('/reg',require('./reg'));// 登陆router.use('/login',require('./login'));module.exports = router;
新的传值方式
// 访问/article/1.html// 新的传值方法 :param//req.params 同时接收get , post , 其它 提交数据的形式
/article
文章列表 ,详情页
article.ejs
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> * {margin: 0; padding: 0;} a {text-decoration: none;} ul,li {list-style: none;} body {font-family: "Microsoft yahei";} ul {padding: 20px;} li {width: 100%; height: 40px; line-height: 40px; background: #fafafa; border: 1px solid #ddd; cursor: pointer; border-radius: 5px;} li a{display: block; width: 100%; height: 100%; color: #222; font-size: 16px; text-indent: 1em;} li:hover{background: #EDEDED;} li span {font-size: 14px; color: #454545;} li span.time {float: right; margin-right: 20px;} </style></head><body><% if(data.length == 1){ %> <h1>文章标题: <%= data[0]['title'] %></h1> <p>标签:<%= data[0]['tag'] %></p> <p>标签:<%= data[0]['author'] %></p> <p>标签:<%= data[0]['content'] %></p> <p>标签:<%= data[0]['time'] %></p> <a href='/article'>返回列表</a><% }else{ %> <h1>文章列表:</h1> <ul> <% for(var i in data){ %> <li><a href='/article/<%- data[i]["id"] %>.html'> <%- data[i]['title'] %> <span class='tag'> <%- data[i]['tag'] %> </span><span class='time'> <%- data[i]['time'] %> </span></a></li> <% } %> </ul><% } %></body></html>
访问没有的网址 ==> 处理 设置status
给响应的模板 设置404状态码
router.get('/article/:id.html',(req,res)=>{ // 访问/article/1.html // 新的传值方法 :param //req.params 同时接收get , post , 其它 提交数据的形式 console.log(req.params); sql('select * from article where id = ?',[req.params.id],(err,data)=>{ if(data.length == 0){ // 需要res.status(404)设置状态码 res.status(404).render('err'); return; } res.render('article',{data:data}); });});
阅读全文
0 0
- 文章功能
- 测试文章发表功能。
- 文章自动排版功能。
- 文章分享到功能
- wordpress文章缩略图功能
- wordpress文章摘要功能
- 文章置顶的功能
- 文章中的代码演示功能~
- ht的文章审查功能
- 文章审查功能的用法
- asp实现文章摘要功能
- django 实现文章跳转功能
- 文章编辑实现分页功能
- 相关文章、关联文章、产品功能开发方案
- CSDN Blog 之使用文章功能
- 论坛新加了文章功能
- 学术捜索新添找寻新近文章功能
- asp提供在线文章翻译的功能
- 玩玩i++
- 使用QQ互联报空指针异常
- 端午任务
- JDBC概念原理和连接数据库以及工具类的书写
- java 线程常用的方法
- 文章功能
- WebService-01
- QT如何输出调试信息
- SqlSession
- 商品展示
- Weka学习一(分类器算法)
- 【Unity3D基础知识】——Stats窗口
- 第一天
- Python 开发环境搭建实战