• 前后端分离方式渲染数据(2018/11/12)


    一、前后端分离----渲染数据  总的来说就是在index.js中向某个端口甩出data.json中的数据 然后在.html文件中从这个端口中获取这个数据然后将其遍历到网页中
    ①先生成express项目
    ②在bin/www 中查看端口号
    ③app.js 中的app.use(express.static(path.join(__dirname,'public'))) ; 可以将public文件夹与app.js连接在一起
    ④模拟一个data.json 数据
    ⑤在public文件夹中写一个list.html 向后端服务器发送请求  (记得引入jquery.js的文件到javascript文件夹中 如果没有可以根据 cnpm i jquery --save 进行下载 然后在node_modules文件夹中找到并引入) 
    ⑥检查是否成功引入jquery-->npm start-->  console.log($)
    ⑦写index.js 用于向某个端口传递json文件中的数据 
    ⑦向html中写内容  
    data.json  //写数据
    {
    list:[
                {"id":1,"name":"zzz","age":12}
        ],
    “count”:1
    }
    index.js     //甩数据
    var express = require('express');
    var router = express.Router();
    const data = require("../data")//引用data.json中的数据
    const fs = require("fs")
     
    router.get('/data',(req, res)=>{
      res.json(data)//甩数据到/data端口
    });
    module.exports = router;
     
    list.html    //拿数据 并应用
    <script src="/javascripts/jquery.js"></script>//记得要引入jquery
    <script src="/javascripts/baiduTemplate.js"></script>//这是百度模板
           </head>
           <body>
                  <div id="box">
                         
                  </div>
                  <script type="text/html" id="tem">
                         <ul>
                               <% for(var i = 0 ; i < list.length ; i++){%>
                               <li><%=list[i].name%></li>
                               <% } %>
                         </ul>
                  </script>
                  <script type="text/javascript">
                         $.get("http://localhost:3000/data").then((res)=>{//这里的get是从/data端口中拿数据到html页面去用
                               console.log(res.list)//输出从data端口中拿到的所有数据
                               var content =  baidu.template("tem",res);//这个res就是从data.json中拿到的所有数据
                               console.log(content)
                               $("#box").html(content);//向box中添加内容
                         })
                  </script>
           </body>
     
     
    二、前后端分离-----添加数据
    index.js
    var express = require('express');
    var router = express.Router();
    const data = require("../data")
    const fs = require("fs")
     
    router.get('/data',(req, res)=>{
      res.json(data)
    });
    router.get("/add/:username",(req,res)=>{//获取一段网址
           var name = req.params.username;//截取网址中的username部分 相当于$("#username").val()
           data.list.push({
                  id:++data.count,
                  name:name
           })
           fs.writeFileSync("./data.json",JSON.stringify(data));//这里用./data是因为真正调用data.json的是app.js
           res.json({//自定义的
                  ret:true,//告诉前端ret是正常的返回  
                  data:true//数据也是正常返回
                  
           })
    })
    module.exports = router;
     
    add.html
    <script src="/javascripts/jquery.js"></script>
           <script src="/javascripts/baiduTemplate.js"></script>
           </head>
           <body>
                  <div id="box">
                         <input type="text" name="username" id="username" value="" />
                         <button id="btn">添加</button>
                  </div>
                  <script type="text/javascript">
                         $("#btn").click(function(){
                                $.get("http://localhost:3000/add/"+$("#username").val()).then((res)=>{//这里的get是在以一串网址的形式向后端传递input框中输入的内容   后端拿到网址后会将其分解 取出自己需要的部分
                               if(res.ret){//ret是后端返回来的东西,如果成功返回了数据 那么跳转页面
                                      location.href="/list.html"
                               }
                         })
                       })
                         
                  </script>
           </body>
  • 相关阅读:
    《仔仔细细分析Ext》 第N2章 GridPanel的小难点 第一节 每条数据后面跟随几个操作按钮
    TextField输入验证
    Ext.FormPanel 及控件横排显示
    备份
    重写
    this关键字
    TestCircle程序分析
    java方法重载
    static关键字
    super关键字
  • 原文地址:https://www.cnblogs.com/zsrTaki/p/11510381.html
Copyright © 2020-2023  润新知