源码:智能社视频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 博客案例的更多相关文章

  1. Hive学习 系列博客

    原 Hive作业优化 原 Hive学习六:HIVE日志分析(用户画像) 原 Hive学习五--日志案例分析 原 Hive学习三 原 Hive学习二 原 Hive学习一 博客来源,https://blo ...

  2. Android学习之 博客专栏 与 资料

    android | Android Developers Android学习系列 - 谦虚的天下 - 博客园 android基础 - 生如夏花之灿烂 - 博客园 Android开发 - 皓月繁星 - ...

  3. 小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET

    小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET 小议common lisp程序开发流程 分类: lisp 2011-04-17 20:59 1316人阅 ...

  4. python3.4学习笔记(七) 学习网站博客推荐

    python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...

  5. 2020BUAA-个人博客-案例分析

    个人博客作业-软件案例分析 项目 内容 北航2020软工 班级博客 作业要求 具体要求 我的课程目标 通过案例分析提升自己对于软件工程的认识 课程收获 分析软件,了解软件的定位 第一部分 调研,评测( ...

  6. [nodejs] nodejs开发个人博客(一)准备工作

    前言 nodejs是运行在服务端的js,基于google的v8引擎.个人博客系统包含对数据库的增删查改,功能齐备,并且业务逻辑比较简单,是很多后台程序员为了检测学习成果,最先拿来练手的小网站程序.我也 ...

  7. Bootstrap学习笔记博客

    本片博客用于记录之后要用到Bootstrap的学习笔记   概括: Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASC ...

  8. 学习python——博客记录第一天

    HELLO WORLD!   今天第一次开立博客,专门记载学习编程语言中的点点滴滴.今日学习内容: 搭建vs code+ python3.5 "ide" 学习廖雪峰python教程 ...

  9. nodejs环境 + 入门 + 博客搭建

    NodeJS:NodeJS是一个使用了Google高性能V8 引擎 的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成 ...

随机推荐

  1. bzoj1706 relays 奶牛接力跑 线性代数

    题目描述 FJ的N(2 <= N <= 1,000,000)头奶牛选择了接力跑作为她们的日常锻炼项目.至于进行接力跑的地点 自然是在牧场中现有的T(2 <= T <= 100) ...

  2. Django项目:CRM(客户关系管理系统)--76--66PerfectCRM实现CRM课程作业排名

    # classtop_urls.py # ————————64PerfectCRM实现CRM课程排名详情———————— from django.conf.urls import url from b ...

  3. Delphi代码规范

    1. 前言 本文档主要是为Delphi开发人员提供一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致格式可遵循.这样,每个编程人员编写的代码能够被其他人理解. 2. 源程序书写规范 2 ...

  4. 切片 及 range 点睛回炉

    print(list(range(-1,-5,-1))) # [-1, -2, -3, -4] # range(x,y,z) ''' 首先把 x的数值放在 数轴上 z 的正负决定 x 向前搜索(为正) ...

  5. 再谈MFC学习——模态对话框的数据传递

    学习c++的目的就是为了使用封装好的类.而最最经典的封装类当然是微软的MFC窗体程序类. 学习MFC编程之前要学习c++的主要知识,掌握c++的基本编程思想. 以下就看下我学习的MFC模态对话框的数据 ...

  6. Redis源码解析:20sentinel(一)初始化、建链

    sentinel(哨兵)是redis的高可用解决方案.由一个或多个sentinel实例组成的分布式系统,可以监控任意多个主节点,以及它们属下的所有从节点.当某个主节点下线时,sentinel可以将下线 ...

  7. pc端拖拽

    var move=document.getElementsByClassName("page1_2")[0]; var startX=0; var startY=0; var x= ...

  8. C++ string(STL)

    发现字符串问题中 string 好厉害- string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c ...

  9. Prime Ring Problem HDU - 1016 (dfs)

    Prime Ring Problem HDU - 1016 A ring is compose of n circles as shown in diagram. Put natural number ...

  10. Bootstrap启动(关闭)轮播

    $('.carousel').carousel(); //启动轮播 $('.carousel').carousel(‘pause’); //关闭轮播 $(‘.carousel’).carousel({ ...