一、在mong0db.js中写如下代码

1.导入
const mongoose = require("mongoose");
// 建立数据库连接
mongoose.connect("mongodb://127.0.0.1:27017/text");
// 创建模型
const tagSchema = new mongoose.Schema({
    // text:String,
    text:{
        type:String,
        minlenght:2,
        maxlenght:12
    }
})
const contentSchema = new mongoose.Schema({
    // text:String,
    title:{
        type:String,
        minlenght:6,
        maxlenght:12
    },
    content:{
        type:String,
        minlenght:10,
        maxlenght:50
    },
    top:{
        type:Boolean
    }
})
const uSerSchema = new mongoose.Schema({
    // text:String,
    name:{
        type:String,
        minlenght:2,
        maxlenght:12
    },
    password:{
        type:String,
        minlenght:6,
        maxlenght:8
    },
    email:{
        type:String,
        minlenght:10,
        maxlenght:20
    },
    namegrop:{
        type:String
    }
})
// 生成model,实现增删改查
const tagModel = new mongoose.model("tag",tagSchema);
const contentModel = new mongoose.model("content",contentSchema);
const uSerModel = new mongoose.model("uSer",uSerSchema);
// 导出
module.exports ={tagModel,contentModel,uSerModel};
 
二、在tag.router.js中写
// 添加 删除
const {tagModel} = require("../mong0db");
// 导入
const {success,fail} = require("../toast");
/**
 *  get    ctx.query
 *  post   ctx.requery.body
 *  delete ctx.requery.body
 * put     ctx.query        ctx.requery
 */
// 需要通过module.exports 导出
module.exports = function (router){
  // 查询
    router.get("/tag",async (ctx)=>{
     try{
       const data =await tagModel.find({});
       return success(ctx,data);
     }catch(error){
       return fail(ctx,error);
     }
     
    /* 标准的JSON数据
    1.{
      status:200,
      data:[
            {id:1,text:"html"},
            {id:2,text:"sql"}
           ],
      mag:""
      }*/
    })
// 添加
    router.post("/tag",async ctx=>{
      try{
        const data =await tagModel.create(ctx.request.body);
        return success(ctx,data);
      }catch(error){
        return fail(ctx,error);
      }
    })
// 删除
    router.delete("/tag",async ctx=>{
      try{
        const data =await tagModel.deleteOne(ctx.request.body);
        return success(ctx,data);
      }catch(error){
        return fail(ctx,error);
      }
    })
}

三、通过text.http显示

### 查询
GET http://localhost:8000/tag
### 添加
POST http://localhost:8000/tag
Content-Type: application/json
#content
//表单方式
# id=1000&name="张三"
{
    "text":"6234"
}
### 删除
DELETE http://localhost:8000/tag
Content-Type: application/json
{
    "_id":"61a5cbbbe4946b0d5fc6aca5"
}
 
注:
需要通过toast.js中引用后才能实现

nodejs实现页面的增删查的更多相关文章

  1. 用nodejs和js写增删查模块

    文件目录如下:public是静态资源文件,index.html入门页面,server.js就是用nodejs创建的服务端代码,users.json就类似是数据库. 目录 显示界面 listUsers ...

  2. ASP.NET动态的网页增删查改

    动态页面的增删查改,不多说了,直接上代码 跟前面的一般处理程序一样我上用的同一套三层,只是UI层的东西不一样,在纠结着要不要重新在上一次以前上过的代码: 纠结来纠结去,最后我觉得还上上吧,毕竟不上为我 ...

  3. nodejs连接mysql并进行简单的增删查改

    最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...

  4. ElementUI嵌套页面及关联增删查改实现

    @ 目录 前言 一.ElementUI如何在原有页面添加另外一个页面并实现关联增删查改? 二.实现步骤 1.ElementUI代码 2.思路:很简单 1.1 首先通过el-row.el-col.el- ...

  5. backbonejs mvc框架的增删查改实例

    一:开发环境 coffeescript和nodejs需要先安装,没装网上自己查安装步骤. 代码编写环境及esp框架下载: esp框架下载地址:https://github.com/nonocast/e ...

  6. 一套手写ajax加一般处理程序的增删查改

    倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: ...

  7. TP框架 增删查

    TP框架添加数据到数据库1.使用数组方式添加造模型对象 2.使用AR方式 强类型语言存在的方式 3.使用自动收集表单添加 :只能用POST方式,提交数据一个操作方法实现两个逻辑:A显示页面B得到数据 ...

  8. Java代码实现 增删查 + 分页——实习第四天

    今天项目内容已经开始了,并且已经完成好多基本操作,今天就开始总结今天学习到的内容,和我遇到的问题,以及分析这其中的原因. 内容模块: 1:Java代码实现对数据库的增删查: 2:分页且获取页面信息: ...

  9. 极极极极极简的的增删查改(CRUD)解决方案

    去年这个时候写过一篇全自动数据表格的文章http://www.cnblogs.com/liuyh/p/5747331.html.文章对自己写的一个js组件做了个概述,很多人把它当作了一款功能相似的纯前 ...

  10. SSH框架的多表查询和增删查改 (方法一)上

    原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>  http://www.cnblogs.com/zhu520/p/7772823.html   因为最近在做Android 练习的 ...

随机推荐

  1. thirty

    数组中的方法 filter filter方法可以过滤符合条件的数值,返回一个新数组,可以利用filter和indexOf进行数组去重操作(indexOf返回的是该数组内的值第一次出现的索引,若无该值返 ...

  2. accept 类型列表

    *.3gpp audio/3gpp, video/3gpp 3GPP Audio/Video *.ac3 audio/ac3 AC3 Audio *.asf allpication/vnd.ms-as ...

  3. 用户警告:“importlib-metadata”版本与“setuptools”不兼容。升级importlib-metadata

    Warning: `importlib-metadata` version is incompatible with `setuptools` 解决方案:升级 importlib-metadata 版 ...

  4. dockerfile实践学习

    一.dockerfile简介 镜像是分层存储的,每一层在前一层的基础上进行修改. 容器也是分层存储,已经向为基础层,在其他基础上加一层作为容器运行的存储层. 创建镜像的另种两种方法 手动修改容器内容, ...

  5. python logger 按时间段滚动

    import logging import logging, logging.handlers import time logging.getLogger().setLevel(logging.DEB ...

  6. exe可执行文件反编译成py文件

    记录一下exe文件反编译的问题 准备工作 1. 安装第三方包 uncompyle6 (pip install uncompyle6==3.7.4) 2. 下载pyinstxtractor.py文件 3 ...

  7. Vue的hash/history模式

    hash路由模式 URL 中的 hash 值只是客户端的一种状态,向服务端发送请求的时候,hash 部分不会被发送: hash 值得改变会在浏览器的历史记增加访问记录,所以可以通过浏览器的回退.前进控 ...

  8. PyMySQL删除

    title: PyMySQL删除 author: 杨晓东 permalink: PyMySQL删除 date: 2021-10-02 11:27:04 categories: - 投篮 tags: - ...

  9. CF652F 题解

    题意 传送门 在一个长度为 \(m\) 的圆环上有 \(n\) 只初始位置互不相同的蚂蚁,每只蚂蚁的速度都为 \(1\),初始方向为顺时针或逆时针:两只运动方向不同的蚂蚁相遇时会调转方向,问 \(t\ ...

  10. 在项目中配置proxy 解决调试过程中的跨域问题