express——crud
使用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的更多相关文章
- Nodejs之路(三)—— Nodejs之Express框架
Express 原生的 http 在某些方面表现不足以应对我们的开发需求,所以我们需要使用框架来加快我们的开发效率.框架的目的就是提高效率,让我们的代码更高度统一 在Node 中,有很多 Web 开发 ...
- 【原】无脑操作:express + MySQL 实现CRUD
基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...
- 【nodejs】用express又做了份crud
感觉crud是高级形式的hello world了. app代码: 'use strict'; var express=require('express'); var http=require('htt ...
- express+jade+bootstrap+mongdb simple CRUD test
1:当前环境 y@y:~$ node --version && express -V && mongo --version v0.12.2 MongoDB shell ...
- Web API 之CRUD
注:例子来自微软Web API官网(https://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part ...
- Oracle Database 11g Express Editon介绍及安装
一.Oracle Database 11g Express版本介绍 公司项目开发中,使用的数据库是Oracle 10g和MySQL 5.5,最新因为开发需要,需要从后台读取一些数据.使用的客户端是PL ...
- nodejs+express+mysql 增删改查
之前,一直使用的是nodejs+thinkjs来完成自己所需的项目需求,而对于nodejs中另外一中应用框架express却了解的少之又少,这两天就简单的了解了一下如何使用express来做一些数据库 ...
- 使用 Express 和 waterline 创建简单 Restful API
这几篇都是我原来首发在 segmentfault 上的地址:https://segmentfault.com/a/1190000004996659 突然想起来我这个博客冷落了好多年了,也该更新一下, ...
- 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 ...
随机推荐
- ld,连接器
连接器的功能,是将一个可执行程序所需的目标文件和库文件最终整合为一体.一个程序通常包含传统的三个段,.test, .data, .bss段.连接器的功能就是将各个目标文件个库文件中的三个段进行合并. ...
- 解决运行github项目build时间长问题
运行github上的项目的时候,有时会build很长时间 可以打开项目所在目录修改这个文件:项目名XXX/gradle/wrapper/gradle-wrapper.properties 这个文件中的 ...
- 带命名空间的XML的dom4j应用<转>
Element root = document.getRootElement(); List recordenvlist = document.selectNodes("//gm ...
- Android——监听事件OnLongClickListener
.xml <Button android:layout_width="wrap_content" android:layout_height="wrap_conte ...
- 将hive的hql执行结果保存到变量中
这里分别针对shell脚本和python脚本举例: shell脚本如下: 注意:在hive语句左右两边使用的是ESC键下面的点号,不是单引号. #!/usr/bin/env bash test1=`h ...
- Python中的字符串操作总结(Python3.6.1版本)
Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...
- Entity Framework管理实体关系(二):管理一对二关系
在上一篇文章中,简单的介绍了使用Fluent API如何管理一对一的实体关系,在这篇文章中,接着介绍Fluent API如何管理一对多的实体关系. 要在数据库中配置一对多关系,我们可以依赖EF约定,还 ...
- java分布式集群
http://blog.csdn.net/guzicheng/article/details/11580841
- 【转】【Android】Android不同版本下Notification创建方法
使用 new Notification(int icon, CharSequence tickerText, long when)构造函数时,Eclipse却提示:" The constru ...
- e684. 以多种格式打印
A Book object is used when printing pages with different page formats. This example prints the first ...