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. [转]如何将文件夹式的项目源码导入Visual Studio

    原文:https://blog.csdn.net/yangdashi888/article/details/73323419 1.把源码目录拷贝到工程目录下 2.这时在vs的目录列表里是看不到这个目录 ...

  2. OK335xS-Android pack-ubi-256M.sh hacking

    #/******************************************************************************* # * OK335xS-Androi ...

  3. 51Nod:1995 三子棋

    1995 三子棋  题目来源: syu校赛 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 小的时候大家一定玩过"井"字棋吧.也就是在 ...

  4. 斐波那契数列的5种python实现写法

    斐波那契数列的5种python写法       斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖 ...

  5. L2-2 重排链表 (25 分)

    给定一个单链表 L​1​​→L​2​​→⋯→L​n−1​​→L​n​​,请编写程序将链表重新排列为 L​n​​→L​1​​→L​n−1​​→L​2​​→⋯.例如:给定L为1→2→3→4→5→6,则输出 ...

  6. pycharm的安装和激活

    这里可以自定意义安装路径 32-bit是创建32位桌面快捷方式(64-bit同理) .py勾选是默认关联py文件,勾选上后所有py文件默认用pycharm打开 Download....勾选是下载安装X ...

  7. MySQL--REPLACE INTO更新自增列值引发的异常

    ##=====================================================================##测试环境:MySQL版本:MySQL 5.7.19复制 ...

  8. [LeetCode系列] 从中序遍历和后序遍历序列构造二叉树(迭代解法)

    给定中序遍历inorder和后序遍历postorder, 请构造出二叉树. 算法思路: 设后序遍历为po, 中序遍历为io. 首先取出po的最后一个节点作为根节点, 同时将这个节点入stn栈; 随后比 ...

  9. maven 指定 jdk 版本

    方法1:直接修改 本地  settings.xml 文件 <profiles>  </profiles> 之间加入 下面的 <profile> <id> ...

  10. C#中如何把byte[]数组转换成其他类型

    http://bbs.csdn.net/topics/20447859 byte[] bytes = new byte[256]; //receive some stream from network ...