使用express框架做一个简单的增删改查demo,先上效果图:

1.使用webstrom新建一个express项目,建好的项目文件是这样的:

2.直接上代码,方便学习db.js

/**
* Created by Administrator on 2017-02-14.
*/
// 连接MySql
var mysql = require('mysql');
var pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'root',
database: 'crud'
}); function query(sql,callback){
pool.getConnection(function(err, connection) {
// Use the connection
connection.query( sql, function(err, rows) {
// And done with the connection.
callback(err, rows);
connection.release(); //释放链接
});
});
} exports.query = query;

index.js:这里面写主要的逻辑代码。

var express = require('express');
var router = express.Router();
var db = require("./db.js"); /* 列表页. */
router.get('/', function (req, res, next) { db.query("select * from users", function (err, rows) {
if (err) {
res.render('index', {title: 'Express', users: []});
} else {
res.render('index', {title: 'Express', users: rows});
}
}); }); /**
*删除
*/
router.get("/del/:id", function (req, res) {
var id = req.params.id;
db.query("delete from users where id=" + id, function (err, rows) {
if (err) {
res.end("删除失败:" + err);
} else {
res.redirect("/"); //请求重定向
}
});
}); /**
* 修改页面跳转
*/
router.get("/toUpdate/:id", function (req, res) {
var id = req.params.id;
db.query("select * from users where id=" + id, function (err, rows) {
if (err) {
res.end("修改页面跳转失败:" + err);
} else {
res.render("update",{users:rows}); //直接跳转
}
});
}); /**
* 修改
*/
router.post("/update",function(req,res){
var id = req.body.id; //post、get请求区别
var name = req.body.name;
var age = req.body.age;
var sex = req.body.sex; db.query("update users set name='"+name+"',age="+age+",sex='"+sex+"' where id=" + id, function (err, rows) {
if (err) {
res.end("修改失败:" + err);
} else {
res.redirect("/"); //请求重定向
}
});
}); /**
* 新增页面跳转
*/
router.get("/toAdd", function (req,res) {
res.render("add");
}); /**
* 新增
*/
router.post("/add",function(req,res){
var name = req.body.name;
var age = req.body.age;
var sex = req.body.sex; db.query("insert into users(name,sex,age) values('"+name+"','"+sex+"',"+age+")", function (err, rows) {
if (err) {
res.end("新增失败:" + err);
} else {
res.redirect("/"); //请求重定向
}
});
}); /**
* 查询
*/
router.post("/search",function(req,res){
var name = req.body.s_name;
var sex = req.body.s_sex;
var age = req.body.s_age; var sql = "select * from users";
if(name){
sql += " and name like "+"'"+"%"+name+"%"+"'";
}
if(sex){
sql += " and sex='"+sex+"' ";
}
if(age){
sql += " and age='"+age+"' ";
}
sql = sql.replace(/and/,"where"); db.query(sql, function (err, rows) {
if (err) {
res.end("查询失败:" + err);
} else {
res.render('index', {title: 'Express', users: rows,s_name:name,s_sex:sex,s_age:age});
}
});
});
module.exports = router;

完整代码请点这里哦:http://files.cnblogs.com/files/zhengyeye/crud_express_perfect.zip

express——crud的更多相关文章

  1. Nodejs之路(三)—— Nodejs之Express框架

    Express 原生的 http 在某些方面表现不足以应对我们的开发需求,所以我们需要使用框架来加快我们的开发效率.框架的目的就是提高效率,让我们的代码更高度统一 在Node 中,有很多 Web 开发 ...

  2. 【原】无脑操作:express + MySQL 实现CRUD

    基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...

  3. 【nodejs】用express又做了份crud

    感觉crud是高级形式的hello world了. app代码: 'use strict'; var express=require('express'); var http=require('htt ...

  4. express+jade+bootstrap+mongdb simple CRUD test

    1:当前环境 y@y:~$ node --version && express -V && mongo --version v0.12.2 MongoDB shell ...

  5. Web API 之CRUD

    注:例子来自微软Web API官网(https://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part ...

  6. Oracle Database 11g Express Editon介绍及安装

    一.Oracle Database 11g Express版本介绍 公司项目开发中,使用的数据库是Oracle 10g和MySQL 5.5,最新因为开发需要,需要从后台读取一些数据.使用的客户端是PL ...

  7. nodejs+express+mysql 增删改查

    之前,一直使用的是nodejs+thinkjs来完成自己所需的项目需求,而对于nodejs中另外一中应用框架express却了解的少之又少,这两天就简单的了解了一下如何使用express来做一些数据库 ...

  8. 使用 Express 和 waterline 创建简单 Restful API

    这几篇都是我原来首发在 segmentfault 上的地址:https://segmentfault.com/a/1190000004996659  突然想起来我这个博客冷落了好多年了,也该更新一下, ...

  9. CRUD Operations in MVC4 Using AngularJS and WCF REST Services

    Now in this article I will show how to do Create, Retrieve, Update and Delete (CRUD) operations in M ...

随机推荐

  1. dp之多维背包hdu2159

    二维背包问题,我是觉得这个题目数据比较水,虽然它最后说了怪可以无限个,但是它却只能最多杀s个,也就是所有品种的怪最多为s个,那么就是二维完全背包的问题了.......同时,它没有说一定要杀s只怪,所以 ...

  2. matlab与MFC

    混合编程其实不难,关键是没有一个规范的,真正可以解决设置过程中出现的小问题的方法.我在设置的过程中,遇到了不少问题,花了多半天的时间,终于解决了,顺利地在vc中调用matlab 生成的dll文件中的函 ...

  3. SQL server 2005如何设置一个或几个字段唯一约束?

    --建立是在三个字段上的唯一约束 alter table Tab add constraint uq_id unique(shipType, shipsession, Territory)

  4. CKFinder 弹出窗口操作并设置回调函数

    CKFinder 弹出窗口操作并设置回调函数 官方例子参考CKFinderJava-2.4.1/ckfinder/_samples/popup.html 写一个与EXT集成的小例子 Ext.defin ...

  5. CentOS6 配置FTP服务器

    编辑 删除 1.先检查有没有安装   rpm -q vsftpd 如果没有安装   yum install vsftpd 2.先关闭防火墙进行调试. service iptables stop 或者一 ...

  6. PHP变量解析顺序variables_order

    转载自:http://blog.csdn.net/knight0450/article/details/4291556 故事从一个有点诡异的BUG开始,后台一个使用频率不是很高的广告提交功能有时候会莫 ...

  7. javaScript之function定义

    背景知识 函数定义 在javaScript中,function的定义有3种: 1.匿名定义                function(){} 2.非匿名定义                fun ...

  8. TensorFlow基础笔记(15) 编译TensorFlow.so,提供给C++平台调用

    参考 http://blog.csdn.net/rockingdingo/article/details/75452711 https://www.cnblogs.com/hrlnw/p/700764 ...

  9. html -- <meta name="viewport"/>

    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scal ...

  10. 类加载器详解 (转至http://blog.csdn.net/jiangwei0910410003/article/details/17733153)

    首先来了解一下字节码和class文件的区别: 我们知道,新建一个java对象的时候,JVM要将这个对象对应的字节码加载到内存中,这个字节码的原始信息存放在classpath(就是我们新建Java工程的 ...