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. 学会从后往前遍历,例 [LeetCode] Pascal's Triangle II,剑指Offer 题4

    当我们需要改变数组的值时,如果从前往后遍历,有时会带来很多麻烦,比如需要插入值,导致数组平移,或者新的值覆盖了旧有的值,但旧有的值依然需要被使用.这种情况下,有时仅仅改变一下数组的遍历方向,就会避免这 ...

  2. linux平台程序高精度延时问题select-usleep等

    前言 微秒级别的延时... 1.能用 #include <unistd.h> int usleep(useconds_t usec);              微秒级:1/10^-6 2 ...

  3. [LeetCode&Python] Problem 700. Search in a Binary Search Tree

    Given the root node of a binary search tree (BST) and a value. You need to find the node in the BST ...

  4. 王垠:完全用Linux工作 - imsoft.cnblogs

    完全用Linux工作,抛弃windows 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. GNU/Linux 不是每个人都想用的.如果你只需要处理一般的事务, ...

  5. POI的简单使用

    一:简介 利用POI工具可以导出word,excel,ppt等office文件 二:程序代码示例 package com.wang.test; import java.io.File; import ...

  6. python3 lambda函数

    A=lambda x:x+1 def A(x):return x+1 冒号左边→想要传递的参数冒号右边→想要得到的数(可能带表达式)

  7. dbt 生产环境使用

    可以使用如下方式: 云主机或者普通的机器 使用 airflow 使用 Sinter, 一个托管的dbt runner 常见问题: 如何管理权限? 可以使用hooks 进行配置用户组以及权限 说明 实际 ...

  8. hadoop之 心跳时间与冗余快清除

    1.Hadoop datanode节点超时时间设置 datanode进程死亡或者网络故障造成datanode无法与namenode通信,namenode不会立即把该节点判定为死亡,要经过一段时间,这段 ...

  9. node V8 的垃圾回收机制

    将变量设置为null意味着切断变量与它此前引用的值之间的连接.当垃圾收集器下次运行时,就会删除这些值并回收它们占用的内存.

  10. opencart后台操作--第一节 多语言篇---中文语言包

    参考:http://www.cnblogs.com/404bozhu/p/5015108.html#3584448 OpenCart简体中文语言包 OpenCart V2.3.0.x 版权所有:www ...