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. MyEclipse2017CI破解教程

    因为工作中需要有多个MyEclipse去管理不同的项目组的工作,恰逢MyEclipse2017CI发布,下载破解尝鲜,因为之前安装了MyEclipse2016CI7和MyEclipse2014GA,两 ...

  2. cocos2dx 3.1.1移植安卓apk (lua项目交叉编译 mac环境下)

    cocos2dx 3.1.1 lua项目安卓交叉编译 mac环境下 本文基于ant,sdk,ndk,adt等软件和环境已经事前设置好 1\新建项目 在mac的终端下输入命令: cocos new te ...

  3. ORACLE常用系统查询

    目录(?)[-] 查询系统所有对象 查看系统所有表 查看所有用户的表 查看当前用户表 查看用户表索引 查看主键 查看唯一性约束 查看外键 查看表的列属性 查看所有表空间 查看oracle最大连接数 修 ...

  4. Texas Instruments matrix-gui-2.0 hacking -- menubar.php

    <?php /* * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ * * * Redistrib ...

  5. iFiles——苹果上最好用的文件管理器 - imsoft.cnblogs

  6. Roslyn编译器-C#动态脚本实现方案

    [前言] Roslyn 是微软公司开源的 .NET 编译器. 编译器支持 C# 和 Visual Basic 代码编译,并提供丰富的代码分析 API. Roslyn不仅仅可以直接编译输出,难能可贵的就 ...

  7. java 2和java有什么区别

    Java是一种通用的,并发的,强类型的,面向对象的编程语言. JDK是Sun公司分发的免费Java开发工具包,正式名称为J2SDK(Java2 Software Develop Kit). 包括基本的 ...

  8. 树的遍历算法-只有一个变量T-递归和非递归

    void PostOrderTraverse(BTNode *T) { //就用到了一个变量T if(T==NULL) return; PostOrderTraverse(T->lchild); ...

  9. CSI-MIPI学习笔记

    一.mipi LCD 的CLK时钟频率与显示分辨率及帧率的关系 公式: Mipiclock = [ (width+hsync+hfp+hbp) x (height+vsync+vfp+vbp) ] x ...

  10. 处理json的常用java类库:Json-lib(org.json)、Gson、Jackson、Fastjson

    更多的处理json的java类库,有人做了性能对比,GitHub地址:https://github.com/fabienrenaud/java-json-benchmark 处理json的java类库 ...