index.js
const express = require("express");导入express框架
const data = require("./data");导入data文件
const url = require('url');导入路径模块
const fs = require("fs");导入fs模块
var app = express();把express实例化
app.use(express.static("views"));使用静态资源中间件(middleware)
 
app.set("view engine","ejs");设置模板引擎是ejs
 
app.get("/",(req,res)=>{
    res.send("hello world");
})
 
app.get("/list/:no?",(req,res)=>{
    n=Number(req.params.no);记录哪一个元素是红色的
    if(!n && n!=0) n=1; 设置默认值
    res.render("list",{渲染list模板
         list:data.list,
         n:n
    })
})
添加
app.get("/add*",(req,res)=>{
     var obj=url.parse(req.url,true);
     data.list.push(obj.query.item);
     fs.writeFileSync("./data.json",JSON.stringify(data));
     res.render("list",{渲染list模板
         list:data.list,
         n:data.list.length-1最后一个元素变红
    })
})
删除
app.get("/del/:idx",(req,res)=>{
    var idx=Number(req.params.idx);
    data.list.splice(idx,1);
    fs.writeFileSync("./data.json",JSON.stringify(data));
    res.render("list",{渲染list模板
        list:data.list,
        n:data.list.length-1 最后一个元素变红
    })
})
查找下标对应的内容
app.get("/modify/:idx",(req,res)=>{
    var idx=Number(req.params.idx);获取下标
    var item=data.list[idx];获取对应下标的内容
    res.render("modify",{渲染modify模板
        idx:idx,
        item:item
    })
})
修改
app.get("/modify*",(req,res)=>{
    var obj=url.parse(req.url,true);获取路径并拆分
    data.list[obj.query.idx]=obj.query.item;通过对应的下标,得到修改后的对应内容
    fs.writeFileSync("./data.json",JSON.stringify(data));
    res.render("list",{渲染list模板
        list:data.list,
        n:data.list.length-1 最后一个元素变红
    })
})
查询
app.get("/query/:kw?",(req,res)=>{
    var list=data.list.filter((item)=>{
        return item.includes(req.params.kw);
    })
    res.render("query",{
        list:list
    })
})
 
监听
var ser = app.listen(3010,()=>{
    console.log(`listen ${ser.address().port} ...`);
})

express无中间件的增删改查的更多相关文章

  1. express有中间件的增删改查

    var express = require('express');引入express框架 var router = express.Router();引入router路由级中间件 var data = ...

  2. 告别无止境的增删改查:Java代码生成器

    对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里.那有什么办法可以在正常的开发进度下自动生成一些类,配置文件,或者接口呢?   有感于马上要做个比较 ...

  3. 告别无止境的增删改查--Java代码生成器

    转自:http://www.cnblogs.com/zhuYears/archive/2012/02/29/2373491.html 告别无止境的增删改查--Java代码生成器 有感于马上要做个比较大 ...

  4. 仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))

    仿联想商城laravel实战---5.无刷新的增删改查(动态页面更新的三种方式(html)) 一.总结 一句话总结: 直接js增加删除修改html 控制器直接返回处理好的页面 用双向绑定插件比如vue ...

  5. webpack4+express+mongodb+vue 实现增删改查

    在讲解之前,我们先来看看效果如下所示: 1)整个页面的效果如下: 2) 新增数据效果如下: 3) 新增成功如下: 4) 编辑数据效果如下: 5) 编辑成功效果如下: 6) 删除数据效果如下: 7) 删 ...

  6. 5、Spring+Struts2+MyBatis+分页(mybatis无代理)增删改查

    1.创建如下项目结构 2.在src下的com.entity包下创建Dept.java package com.entity; /** * 部门表 * @author Holly老师 * */ publ ...

  7. Node+Express+MySql实现简单增删改查和登录

    var express = require('express'); var mysql = require('mysql'); var app = express(); var bodyParser ...

  8. node+express实现简单的增删改查

    var express = require('express'); var bodyParser = require("body-parser"); var cors = requ ...

  9. express 对数据库数据增删改查

    接着 http://www.cnblogs.com/cynthia-wuqian/p/6560548.html (1)概念 Schema(属性) :一种以文件形式存储的数 据库模型骨架,不具备数据库的 ...

随机推荐

  1. I.MX6 计算iomux Pin配置

    /********************************************************************************* * I.MX6 计算iomux P ...

  2. Spring boot 2.1.0 -- swagger2 整合

    依赖版本信息 Spring boot 2.1.0.RELEASE swagger2 2.7.0 1. mvn 配置  pom.xml 包引入 <!--swagger2依赖--> <d ...

  3. Unity 3D中 Ulua-UGUI简单的Demo——热更新的具体流程、使用说明

    Ulua热更新具体流程.使用说明 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 -- 未完 1 -- ...

  4. 大家一起做训练 第一场 E Number With The Given Amount Of Divisors

    题目来源:CodeForce #27 E 题目意思和题目标题一样,给一个n,求约数的个数恰好为n个的最小的数.保证答案在1018内. Orz,这题训练的时候没写出来. 这道题目分析一下,1018的不大 ...

  5. 相邻行列相互影响的状态类问题(类似状压dp的搜索)(POJ3279)

    POJ3279http://poj.org/problem?id=3279 题意:黑白的板,每次选择一个十字形翻转(十字板内黑白互换,若是边界则不管),求最小将原图变为全白的策略. 这是一道对于每个格 ...

  6. 表单添加缩略图及截图js代码

    此为表单提交是上传截图的代码,待优化: // 添加小程序图片 function addAvatar(obj){ var file = obj.files[0]; limit($('.avatar_bo ...

  7. 不用webservice wcf提供服务,用Rest更轻量

    从2005年开始就开始有基于服务的开发方式,到08年时候 微软和sun等公司都已经提供了很多基于服务的开发框架 . 微软 .net 平台的基于服务的框架主要有:.NET Remoting.webser ...

  8. Ubuntu配置操作总结

    一.fstab和mtab的区别 /etc/fstab:是开机自动挂载的配置文件,在开机时起作用.相当于启动linux的时候,自动使用检查分区的fsck命令和挂载分区的mount命令,检查分区和挂载分区 ...

  9. nginx php 配置

    nginx php 环境的搭建步骤: 1.nginx 配置: server { listen       4446; server_name  localhost; location / { root ...

  10. 02.将uboot,kernel,rootfs下载到开发板上

    转载,侵删 将uboot,kernel,rootfs下载到开发板上 1.为什么要下载 所谓下载,也称烧录,部署. 1.1.什么是u-boot Hi3518EV200 单板的 Bootloader 采用 ...