node从数据库中拿数据的轮播图

node从数据库中拿到数据,然后在html中写入。

需要三个工具:atom编译器(也可以是其它的,只要支持ejs文件);Navicat(将数据库写入)  ,编写html的用的习惯的工具。

第一步:用div+css+jquery写好一个轮播图,图片和图片下边的注释都写死的那种;

第二步:banner(表名):

数据字典:ID      int      不为空   主键

                  imgSrc(图片的地址)     varchar(16)  (图片名字的长度) 不为空

                 subtitle(副标题)     varchar(16)(副标题字的个数设置)    不为空

                title(对图片解释的文字,其实是在图片上边的字)   varchar(60)     不为空

 

第三步:使用atom开始写入用js设计的内容。

        (1)、先下载各个板块:

       express:帮助搭建各个web项目,可以使用HTTP协议;

       body-parser:解析在前端在input框内写入的数据    ;

       cookie-parser:解析cookie数据,并对浏览器产生一定的加密效果;

      cookie-session:解析session数据

      multer:处理node.js的中间件,,主要用作文件上传,但是需要在form中加入multipart/form-data(不会处理任何不是这个的文件);

       consolidate:作为模板引擎的整合模板,,模板引擎常见的有两种(ejs和jade),由于前者和h5的语法几乎一样,所以自己设计的时候基本上都是用前者。

       ejs:模板;

  mysql:引入数据库。

使用上述的模块都需要下载,在自己的文件路径下用  npm install express cookie-parser -D等模块。

                  淘宝镜像下载npm install -g cnpm --registry=https://registry.npm.taobao.org   然后下载模块用cnpm install 模块名

 (2)、在js文件中引入文件:用const 定义变量   const express=require('express');    引入模块的形式和上边的一样   

                              注意:multer的使用  multer作为文件的上传,自然需要上传文件的地址,可以这样定义

                                       const multer=require('multer');   const multerobj=multer({dest:'   要写入到哪里 的地址'});

  (3)、需要获取express和对监听     var server =express();   server.listen();

    (4)、用createPool建立一个连接池,里边的参数包括,host:   ***数据库名字,用户名,密码,自定义的端口号,这些用json格式,并且定义一个变量获取它,,然后用query属性解析;里边的第一个参数是想从数据库中获取的东西,第二个是一个函数,里边的两个参数分别为err  data ,,如果错误,向前台传输一个错误信息,,如果正确,就要开始渲染前台主页的内容;

  (5)、解析cookie,使用session,.post数据吗, 配置模板引擎,(上一个以详细介绍过consolidate的用法);

   主页的具体代码如下:

    

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: '926983', database: 'my_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", (err, data)=>{
    if(err){
      console.log(err);
      res.status(500).send('database error').end();
    }else{
      console.log(data);

//1.ejs是前台页面的名字
      res.render('index1.ejs', {banner: data});
    } 
  });
});

//4.static数据
server.use(static('./www'));

 

 

前台页面,,可以设计自己的轮播图,我的如下:

        <div class="banner" id="b04">
                                     <ul>

//将表遍历,可以得到几个object,可以使用,让他作为数组,里边存的是自己定义的id,imgSrc,title,subtitle,找到对应位置,将前台写死的内容进行替换,这个时候出现的图片以及图片上的文字都是在数据库中拿出的
                              <% for(var i=0;i<banner.length;i++){  %>
                                         <li class="slider-item">
                                             <a href="#">
                                                 <img src="<%=banner[i].picSrc %>"  width="720" height="500" >
                                                 <span class="slider-title">
                                                     <em>
                                      <%=banner[i].title %>
                                                         <!-- 小米进军泡面界,5块一桶还包邮? -->
                                                     </em>
                                    <em>--->
                                      <%=banner[i].speaker %>
                                    </em>
                                                 </span>
                                             </a>
                                         </li>
                              <% } %>
                                        <!-- <li class="slider-item"><a href="#"><img src="img/roy.jpg" alt="如果你是创业者,你或许应该琢磨琢磨投资人是怎么想的" width="720" height="500" ><span class="slider-title"><em>如果你是创业者,你或许应该琢磨琢磨投资人是怎么想的</em></span></a></li> -->
                                        <!-- <li class="slider-item"><a href="#"><img src="img/jakson.jpg" alt="傅盛:生物学思维给我的四个启示" width="720" height="500" ><span class="slider-title"><em>傅盛:生物学思维给我的四个启示</em></span></a></li> -->
                                     </ul>
                                 </div>
                                 <div class="progress"></div>
                                 <!--<a href="javascript:void(0);" class="unslider-arrow04 prev">
                                     <img class="arrow" id="al" src="img/arrowl.png" alt="prev" width="20" height="35">
                                 </a>-->
                                <!--<a href="javascript:void(0);" class="unslider-arrow04 next"><img class="arrow" id="ar" src="img/arrowr.png" alt="next" width="20" height="37"></a>-->


                             </div>

        <div class="banner" id="b04">
                                     <ul>
                              <% for(var i=0;i<banner.length;i++){  %>
                                         <li class="slider-item">
                                             <a href="#">
                                                 <img src="<%=banner[i].picSrc %>"  width="720" height="500" >
                                                 <span class="slider-title">
                                                     <em>
                                      <%=banner[i].title %>
                                                         <!-- 小米进军泡面界,5块一桶还包邮? -->
                                                     </em>
                                    <em>--->
                                      <%=banner[i].speaker %>
                                    </em>
                                                 </span>
                                             </a>
                                         </li>
                              <% } %>
                                        <!-- <li class="slider-item"><a href="#"><img src="img/roy.jpg" alt="如果你是创业者,你或许应该琢磨琢磨投资人是怎么想的" width="720" height="500" ><span class="slider-title"><em>如果你是创业者,你或许应该琢磨琢磨投资人是怎么想的</em></span></a></li> -->
                                        <!-- <li class="slider-item"><a href="#"><img src="img/jakson.jpg" alt="傅盛:生物学思维给我的四个启示" width="720" height="500" ><span class="slider-title"><em>傅盛:生物学思维给我的四个启示</em></span></a></li> -->
                                     </ul>
                                 </div>
                                 <div class="progress"></div>
                                 <!--<a href="javascript:void(0);" class="unslider-arrow04 prev">
                                     <img class="arrow" id="al" src="img/arrowl.png" alt="prev" width="20" height="35">
                                 </a>-->
                                <!--<a href="javascript:void(0);" class="unslider-arrow04 next"><img class="arrow" id="ar" src="img/arrowr.png" alt="next" width="20" height="37"></a>-->


                             </div>

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值