Express 06 制作留言板项目 完

接上篇 Express 06 制作留言板项目_Sengoku_Xingzi的博客-CSDN博客

 此篇完成 增删 刷新文件 的基本操作

 完整路由文件和 前端文件放 最后了

我们开始弄前端

hello.html vue的固定格式 写上  运行测试 是否成功 每样东西都要先测试的

写dom 

 

  <body>
    <div id="app">
      <div><input type="text" v-model="title" /></div>
      <div>
        <textarea
          name=""
          id=""
          cols="30"
          rows="10"
          v-model="content"
        ></textarea>
      </div>
      <div><button @click="submit">提交</button></div>
    </div>
    <script>
      Vue.createApp({
        data() {
          return {
            title: "",content: "",};
        },methods: {
          submit() {
            console.log(this.title,this.content);
          },},}).mount("#app");
    </script>
  </body>

 测试后端传值  MessageRouter.js 代码在图下 后端成功传值 

const { application } = require("express");
const [db] = require("../db/dbutils");
const express = require("express");
// 拿到路由
var router = express.Router();
// 一样先做个路由测试
router.get("/test",(req,res) => {
  db.all("select * from `message`",(err,rows) => {
    res.send(rows);
  });
});
// 这里是后端发送请求
router.post("/add",res) => {
  let message = req.body;
  db.run(
    "INSERT INTO `message`(`id`,`title`,`content`,`create_time`) VALUES(?,?,?)",[
      new Date().getTime(),message.title,message.content,new Date().getTime(),],rows) => {
      if (err == null) {
        res.send({
          code: 200,message: "添加成功",});
      } else {
        res.send({
          code: 500,message: "添加失败",});
      }
    }
  );
});

// 路由导出
module.exports = router;

 接下来测试前端传值 需要axios  添加成功

<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

 

 

  submit() {
            console.log(this.title,this.content);
            axios
              .post("/message/add",{
                title: this.title,content: this.content,})
              .then(function (response) {
                console.log(response);
              });
          },

 显示  内容  并实现添加后 删除后 刷新显示内容

// 得到所有内容 的接口 在路由文件写
router.get("/list",rows) => {
    res.send(rows);
  });
});

 下面是 前端文件  hello.html

     <!-- 双绑数据可以看 -->
      <!-- {{messages}} -->
      <!-- 做点样式 -->
      <div v-for="(message,index) in messages">
        <div>
          标题:{{message.title}}
          <button @click="deleteMessage(message.id)">删除</button>
        </div>
        <div>内容:{{message.content}}</div>
        <hr />
      </div>
  // 页面刷新时运行此方法
        created() {
          this.loadMessage();
        },//开始获得  数据 写在methods 方法里面
loadMessage() {
            var that = this;
            axios.get("/message/list").then(function (response) {
              // 这里的this 指向axios 所以指向不了vue的this
              that.messages = response.data;
              console.log(response.data);
            });
          },

删除数据

 后端:  路由文件

// 删除数据
router.delete("/delete",res) => {
  const deleteId = req.query.id;
  db.all("delete from `message` where `id` = ? ",[deleteId],rows) => {
    if (err == null) {
      res.send({
        code: 200,message: "删除成功",});
    } else {
      res.send({
        code: 500,message: "删除失败",});
    }
  });
});

前端 hello.html 文件 

   deleteMessage(id) {
            var that = this;
            axios.delete(`/message/delete?id=${id}`).then(function (response) {
              that.loadMessage();
            });
          },

完整路由文件和 前端文件放这里

hello.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
    <script src="https://unpkg.com/vue@next"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      <div v-for="(message,index) in messages">
        <div>
          标题:{{message.title}}
          <button @click="deleteMessage(message.id)">删除</button>
        </div>
        <div>内容:{{message.content}}</div>
        <hr />
      </div>

      <div>
        <input type="text" v-model="title" />
      </div>
      <div>
        <textarea
          name=""
          id=""
          cols="30"
          rows="10"
          v-model="content"
        ></textarea>
      </div>
      <div><button @click="submit">提交</button></div>
    </div>

    <script>
      Vue.createApp({
        data() {
          return {
            messages: [],title: "",created() {
          this.loadMessage();
        },methods: {
          loadMessage() {
            var that = this;
            axios.get("/message/list").then(function (response) {
              console.log(response);
              that.messages = response.data;
            });
          },deleteMessage(id) {
            var that = this;
            axios.delete(`/message/delete?id=${id}`).then(function (response) {
              that.loadMessage();
            });
          },submit() {
            var that = this;
            axios
              .post("/message/add",})
              .then(function (response) {
                console.log(response);
                that.loadMessage();
              });
          },}).mount("#app");
    </script>
  </body>
</html>

路由文件

const express = require("express");
const { db } = require("../db/dbutils")
var router = express.Router();


router.get("/test",res) => {
    db.all("select * from `message`",rows) => {
        res.send(rows)
    })
})

router.get("/list",rows) => {
        res.send(rows)
    })
})

router.delete("/delete",res) => {
    const deleteId = req.query.id;
    db.all("delete from `message` where `id` = ? ",rows) => {
        if (err == null) {
            res.send({
                code: 200,message: "删除成功"
            })
        } else {
            res.send({
                code: 500,message: "删除失败"
            })
        }
    })
})

router.post("/add",res) => {
    let message = req.body;
    db.run("INSERT INTO `message`(`id`,[new Date().getTime(),new Date().getTime()],message: "添加成功"
            })
        } else {
            res.send({
                code: 500,message: "添加失败"
            })
        }
    })
})


module.exports = router;

原文地址:https://blog.csdn.net/Sengoku_Xingzi

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


根据官网 入门 express
java叫接口control什么的app.get.post等等都是请求方式我们可以在游览器输入localhost端口/或者在Apifox里面写。
为了前端丢进去的时候可以直接判断中间件就是经过了这个就会被使用可以做一些自己的数据处理什么的。
Express 文件的上传和下载
运行命令下载app.js 增加中间件。
基本模板来的 后面用后就有什么加什么都行。
此篇完成 增删 刷新文件 的基本操作
最基本的创建 以及 添加了其他的一些插件 登录接口和四个接口
由于每个接口都要放就很麻烦 所以做个中间件
1importre234defstrip_operate(exp):#合并多余的操作符5exp=exp.replace("+-","-")6exp=exp.replace("--","+")7returnexp8910defcal_exp_son(exp_son):#计算两数的乘除11if&
 socket.html<script>//高级api不兼容socket.io//http单向的,socket是双向的,传输都靠tcpletsocket=newWebSocket('ws://localhost:3000')socket.onopen=()=>{//多个页面通信就是先发给服务器,服务器再发给另一个页面socket.send('我
M模式:类,表示数据的应用程序和使用验证逻辑以强制实施针对这些数据的业务规则。V视图:应用程序使用动态生成HTML响应的模板文件。C控制器:处理传入的浏览器请求的类中检索模型数据,然后指定将响应返回到浏览器的视图模板。简单练习: 1、添加ControllerHelloWorldControlle
在Node开发中免不了要使用框架,比如express、koa、koa2拿使用的最多的express来举例子开发中肯定会用到很多类似于下面的这种代码varexpress=require('express');varapp=express();app.listen(3000,function(){console.log('listen3000...');});app.use(middle
node的http创建服务与利用Express框架有何不同原生http模块与使用express框架对比:consthttp=require("http");letserver=http.createServer(function(req,res){//服务器收到浏览器web请求后,打印一句话console.log("recvreqfrombrowser");
编辑nginx文件vi/usr/local/etcginxginx.confnginx配置如下,配置后需重启nginxnginx-sreloadlocation~.*\.json{roothtml;add_header"Access-Control-Allow-Origin""*";}前端index.html<script>fetch('http://localhost:12
constexpress=require('express')constapp=express()//步骤的拆解constresult=express.static('./views')app.use(result)//再次托管一下样式表的资源目录app.use('/css',express.static('./css'))//托管JS文件目录app.use('/js&#
问题描述:最近在做毕设,express里边的中间件(body-parser)失效,req.body获取不到任何值,req.query能获取到值。一开始加body-parser中间件是有用的,直到昨天加了token之后,body-parser失效。试着把token去掉,无济于事,也不是这个问题,也有说版本对不上的,换了中间件的引入方法,还是没用!!! 后
express官网:---->传送门 expressexpress框架有许多功能,比如路由配置,中间件,对于想配置服务器的前端来说,非常便捷自从node发展之后,基于nodejs的开发框架也不断涌现出来,express就是其中之一,最近简单的写了点express框架的简单的处理请求的demo首先是安装express模块npminstall
目录问题: 操作:Win+S按键,输入“事件查看器”问题详情:模块DLLC:\ProgramFiles(x86)\IISExpress\aspnetcore.dll未能加载。返回的数据为错误信息。问题:  操作:Win+S按键,输入“事件查看器” 问题详情:模块DLLC:\ProgramFiles(x86)\IISExpress\aspnetcore.dll
//获取阿里云市场,快递物流记录https://market.aliyun.com/products/56928004/cmapi022273.html?spm=5176.2020520132.101.26.61f97218v18GBF#sku=yuncode1627300000//get_express_log(self::$config['web']['aliyun_AppCode']阿里云市场AppCode,缓存秒数如300秒,'快递公司代