nodeJs学习-17 博客案例
源码:智能社视频20节课件
const express=require('express');
const static=require('express-static');
const cookieParser=require('cookie-parser');
const cookieSession=require('cookie-session');
const bodyParser=require('body-parser');
const multer=require('multer');
const consolidate=require('consolidate');
const mysql=require('mysql');
//连接池
const db=mysql.createPool({host: 'localhost', user: 'root', password: 'AiTing521', database: 'blog'});
var server=express();
server.listen(8080);
//1.解析cookie
server.use(cookieParser('sdfasl43kjoifguokn4lkhoifo4k3'));
//2.使用session
var arr=[];
for(var i=0;i<100000;i++){
arr.push('keys_'+Math.random());
}
server.use(cookieSession({name: 'zns_sess_id', keys: arr, maxAge: 20*3600*1000}));
//3.post数据
server.use(bodyParser.urlencoded({extended: false}));
server.use(multer({dest: './www/upload'}).any());
//4.配置模板引擎
//输出什么东西
server.set('view engine', 'html');
//模板文件放在哪儿
server.set('views', './template');
//哪种模板引擎
server.engine('html', consolidate.ejs);
//接收用户请求
server.get('/', (req, res)=>{
//查询banner的东西
db.query("SELECT * FROM banner_table", (err, data)=>{
if(err){
console.log(err);
res.status(500).send('database error').end();
}else{
console.log(data);
res.render('index.ejs', {banners: data});
}
});
});
//4.static数据
server.use(static('./www'));
源码:智能社视频21/22节课件
const express=require('express');
const static=require('express-static');
const cookieParser=require('cookie-parser');
const cookieSession=require('cookie-session');
const bodyParser=require('body-parser');
const multer=require('multer');
const consolidate=require('consolidate');
const mysql=require('mysql');
const common=require('./libs/common');
//连接池
const db=mysql.createPool({host: 'localhost', user: 'root', password: 'AiTing521', database: 'blog'});
var server=express();
server.listen(8080);
//1.解析cookie
server.use(cookieParser('sdfasl43kjoifguokn4lkhoifo4k3'));
//2.使用session
var arr=[];
for(var i=0;i<100000;i++){
arr.push('keys_'+Math.random());
}
server.use(cookieSession({name: 'zns_sess_id', keys: arr, maxAge: 20*3600*1000}));
//3.post数据
server.use(bodyParser.urlencoded({extended: false}));
server.use(multer({dest: './www/upload'}).any());
//4.配置模板引擎
//输出什么东西
server.set('view engine', 'html');
//模板文件放在哪儿
server.set('views', './template');
//哪种模板引擎
server.engine('html', consolidate.ejs);
//接收用户请求
server.get('/', (req, res, next)=>{
//查询banner的东西
db.query("SELECT * FROM banner_table", (err, data)=>{
if(err){
res.status(500).send('database error').end();
}else{
res.banners=data;
next();
}
});
});
server.get('/', (req, res, next)=>{
//查询文章列表
db.query('SELECT ID,title,summary FROM article_table', (err, data)=>{
if(err){
res.status(500).send('database error').end();
}else{
res.articles=data;
next();
}
});
});
server.get('/', (req, res)=>{
res.render('index.ejs', {banners: res.banners, articles: res.articles});
});
server.get('/article', (req, res)=>{
if(req.query.id){
if(req.query.act=='like'){
//增加一个赞
db.query(`UPDATE article_table SET n_like=n_like+1 WHERE ID=${req.query.id}`, (err, data)=>{
if(err){
res.status(500).send('数据库有小问题').end();
console.error(err);
}else{
//显示文章
db.query(`SELECT * FROM article_table WHERE ID=${req.query.id}`, (err, data)=>{
if(err){
res.status(500).send('数据有问题').end();
}else{
if(data.length==0){
res.status(404).send('您请求的文章找不到').end();
}else{
var articleData=data[0];
articleData.sDate=common.time2date(articleData.update_time);
articleData.content=articleData.content.replace(/^/gm, '<p>').replace(/$/gm, '</p>');
res.render('conText.ejs', {
article_data: articleData
});
}
}
});
}
});
}else{
//显示文章
db.query(`SELECT * FROM article_table WHERE ID=${req.query.id}`, (err, data)=>{
if(err){
res.status(500).send('数据有问题').end();
}else{
if(data.length==0){
res.status(404).send('您请求的文章找不到').end();
}else{
var articleData=data[0];
articleData.sDate=common.time2date(articleData.update_time);
articleData.content=articleData.content.replace(/^/gm, '<p>').replace(/$/gm, '</p>');
res.render('conText.ejs', {
article_data: articleData
});
}
}
});
}
}else{
res.status(404).send('您请求的文章找不到').end();
}
});
//4.static数据
server.use(static('./www'));
nodeJs学习-17 博客案例的更多相关文章
- Hive学习 系列博客
原 Hive作业优化 原 Hive学习六:HIVE日志分析(用户画像) 原 Hive学习五--日志案例分析 原 Hive学习三 原 Hive学习二 原 Hive学习一 博客来源,https://blo ...
- Android学习之 博客专栏 与 资料
android | Android Developers Android学习系列 - 谦虚的天下 - 博客园 android基础 - 生如夏花之灿烂 - 博客园 Android开发 - 皓月繁星 - ...
- 小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET
小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET 小议common lisp程序开发流程 分类: lisp 2011-04-17 20:59 1316人阅 ...
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- 2020BUAA-个人博客-案例分析
个人博客作业-软件案例分析 项目 内容 北航2020软工 班级博客 作业要求 具体要求 我的课程目标 通过案例分析提升自己对于软件工程的认识 课程收获 分析软件,了解软件的定位 第一部分 调研,评测( ...
- [nodejs] nodejs开发个人博客(一)准备工作
前言 nodejs是运行在服务端的js,基于google的v8引擎.个人博客系统包含对数据库的增删查改,功能齐备,并且业务逻辑比较简单,是很多后台程序员为了检测学习成果,最先拿来练手的小网站程序.我也 ...
- Bootstrap学习笔记博客
本片博客用于记录之后要用到Bootstrap的学习笔记 概括: Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASC ...
- 学习python——博客记录第一天
HELLO WORLD! 今天第一次开立博客,专门记载学习编程语言中的点点滴滴.今日学习内容: 搭建vs code+ python3.5 "ide" 学习廖雪峰python教程 ...
- nodejs环境 + 入门 + 博客搭建
NodeJS:NodeJS是一个使用了Google高性能V8 引擎 的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成 ...
随机推荐
- vue.js_07_vue-resource的请求方式
1.vue-resource 实现 get, post, jsonp请求 <body> <div id="app"> <input type=&quo ...
- 渗透神器----BurpSuite_pro_v2.1
burp2.1版本 主要有两个文件 大小有270M 目前是最新的版本 下载地址 链接: https://pan.baidu.com/s/1UjdwBN-S2TbgZ8iKiBcEhw 提取码: 9h7 ...
- PowerDesigner在修改表的字段Name的时Code不自动跟着变的处理方法以及导入Mysql数据库的表
tools-> GeneralOptions-> Dialog:Operation Modes: 去掉 NameToCodeMirroring 前面的√ 导入数据库中的表到PowerD ...
- 嘴巴题1 LA2531 足球联赛
LA2531 足球联赛 题目: 有n只队伍打比赛,给出每只队目前获胜和失败的场数,再给出两两队伍接下来的比赛场次,问你哪些队伍可能的冠军 (题面摘自http://blog.csdn.net/s_h_r ...
- windows 和 mac 文件夹共享问题汇总
目标:windows上的文件夹,共享给MAC,mac可以将文件复制到windows上来 windows设置共享文件夹,然后在mac上访问 假设win的ip地址是10.10.27.11,则mac上远程方 ...
- git与github建立链接(将本次项目与网络GitHub同步)(二)
第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹). 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建. 现在我通过命令行在桌面新建一个TEST文件夹(你也 ...
- 傳説中的 jsonp
jsonp的由來 1 . 網頁上的東西衹要跨域了就不能傳送或者接受數據了.不管是什麽衹要是跨域.Ajax直接请求普通文件存在跨域无权限访问的问题, 2 . 但是src這個東西比較厲害了,請求哪裏都可以 ...
- webstorm之Monokai-Sublime主题颜色设置方法及激活注册码
打开https://github.com/OtaK/jetbrains-monokai-sublime 链接,然后点击右边的下载ZIP文件即可.解压之后,会得到一个Monokai-Sublime.ja ...
- geoserver与OpenLayers配置
geoserver与OpenLayers配置 目录 1 准备工作.... 4 1.1 需要用到的程序和资料... 4 2 地图格式转换方式(一 ...
- Oracle JOB的建立,定时执行任务
Oracle JOB的建立,定时执行任务 oracle job的相关设置 next date: 2010-12-28 18:05:00 interval: to_date(to_char(sysdat ...