/*
Navicat MySQL Data Transfer
Source Server         : localhost
Source Server Version : 50519
Source Host           : localhost:3306
Source Database       : test
Target Server Type    : MYSQL
Target Server Version : 50519
File Encoding         : 65001
Date: 2018-09-11 19:02:40
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for person
-- ----------------------------
DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
  `id` int(33) NOT NULL AUTO_INCREMENT,
  `name` text,
  `age` text NOT NULL,
  `sex` text NOT NULL,
  `birth` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
-- ----------------------------
-- Records of person
-- ----------------------------
INSERT INTO `person` VALUES ('2', 'asdas', '22', '1', '2018-09-11 15:16:28');
INSERT INTO `person` VALUES ('5', '333', '111', '1', '2018-09-11 16:35:37');
INSERT INTO `person` VALUES ('6', 'ttt', '22', '1', '2018-09-11 16:35:45');
INSERT INTO `person` VALUES ('7', '44', '5', '2', '2018-09-11 16:35:54');
INSERT INTO `person` VALUES ('8', '6', '11', '2', '2018-09-11 16:36:06');
INSERT INTO `person` VALUES ('9', 'sss', '3', '1', '2018-09-11 16:36:50');
INSERT INTO `person` VALUES ('10', '1', '11', '1', '2018-09-11 18:57:40');

2. 简历路由routes/users.js

var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var sql = require('../db/sql');
var uuid = require('node-uuid');
var moment = require('moment');
const dbconfig = {
host : '127.0.0.1',
user : 'root',
password : '1234',
port : '3306',
database : 'test'
};
var connection;
function handleDisconnect() {
connection = mysql.createConnection(dbconfig);
connection.connect(function(err) {
if(err) {
console.log("进行断线重连:" + new Date());
); //2秒重连一次
return;
}
console.log("连接成功");
});
connection.on('error', function(err) {
console.log('db error', err);
if(err.code === 'PROTOCOL_CONNECTION_LOST') {
handleDisconnect();
} else {
throw err;
}
});
}
function handleData(result){
var data = [],tempData;
tempData = JSON.parse(JSON.stringify(result));
){
tempData.forEach(function(value,index){
data.push({
id:value.id,
name:value.name,
age:value.age,
sex:value.sex,
birth:moment(value.birth).format('YYYY-MM-DD HH:mm:ss')
});
});
}
return data;
}
/* GET users listing. */
router.get('/queryAll', function(req, res, next) {
handleDisconnect();
connection.query(sql.queryAll,function (err, result) {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
}
var data = handleData(result);
res.render('user', {users:data});
console.log(data);
});
//web请求中可以不断连接
connection.end();
});
router.post('/add', function(req, res, next) {
handleDisconnect();
console.log('=================req================');
console.log(req.body)
//id,name,age,sex,birth
connection.query(sql.insert,[req.body.name,req.body.age,req.body.sex,new Date()],function (err, result) {
if(err){
console.log('[INSERT ERROR] - ',err.message);
res.json("添加数据失败");
return;
}
console.log(result);
res.json("添加数据成功");
});
//web请求中可以不断连接
connection.end();
});
router.post('/update', function(req, res, next) {
handleDisconnect();
console.log('=================req================');
console.log(req.body)
//id,name,age,sex,birth
connection.query(sql.updatePerson,[req.body.name,req.body.age,req.body.sex,new Date(),req.body.id],function (err, result) {
if(err){
console.log('[UPDATE ERROR] - ',err.message);
res.json("编辑数据失败");
return;
}
console.log(result);
res.json("编辑数据成功");
});
//web请求中可以不断连接
connection.end();
});
router.post('/delete', function(req, res, next) {
handleDisconnect();
console.log('=================req================');
console.log(req.body)
connection.query(sql.deleteById,[req.body.id],function (err, result) {
if(err){
console.log('[DELETE ERROR] - ',err.message);
res.json("删除数据失败");
return;
}
console.log(result);
res.json("删除数据成功");
});
//web请求中可以不断连接
connection.end();
});
router.get('/search', function(req, res, next) {
handleDisconnect();
console.log('=================req================');
console.log(req.param('name'));
connection.query(sql.getPersonByName,[req.param('name')],function (err, result) {
if(err){
console.log('[查询 ERROR] - ',err.message);
return;
}
var data = handleData(result);
res.render('user', {users:data});
console.log(data);
});
//web请求中可以不断连接
connection.end();
});
module.exports = router;

3. views/建立user.jade

pasting

){
){
){
auto}

node jade模板数据库操作的更多相关文章

  1. nodejs ejs模板数据库操作

    1. 建立数据连接setting.js var settings = {}; settings.db = { host: 'localhost', user: 'root', password: '1 ...

  2. node使用MySQL数据库

    内容: 1.node连接数据库 2.数据库常用操作 3.数据库实例 - 用户注册.登陆 1.node连接数据库 (1)下载mysql模块 (2)使用mysql模块连接数据库 let db=mysql. ...

  3. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  4. Node.js 连接 MySQL 并进行数据库操作

    Node.js 连接 MySQL 并进行数据库操作  按照这篇操作mysql的指引,我远程操作了我另一台电脑的mysql数据库. var mysql = require('mysql'); var c ...

  5. node.js零基础详细教程(6):mongodb数据库操作

    第六章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  6. [js高手之路]Node.js模板引擎教程-jade速学与实战2-流程控制,转义与非转义

    一.转义与非转义 jade模板文件代码: doctype html html head meta(charset='utf-8') title jade学习-by ghostwu body h3 转义 ...

  7. python/数据库操作补充—模板—Session

    python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...

  8. node.js零基础详细教程(6):mongodb数据库操作 以及导入导出

    第六章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  9. django上课笔记4-复习数据库操作-复习模板-Seccion-详细cookie和session的区别

    一.复习数据库操作 字段类型 字符串 EmailField(CharField): IPAddressField(Field) URLField(CharField) SlugField(CharFi ...

随机推荐

  1. 使用nginx替换Ingress

    总感觉k8s Ingress 不可控, 所以使用nginx 替换Ingress,还是比较简单的. apiVersion: extensions/v1beta1 kind: DaemonSet meta ...

  2. 禁止 "启动时恢复任何注册的应用程序"

    在关闭计算机时 有些程序会进行注册 并在下次启动时恢复关闭前的状态(Restart Manager) 比如Chrome浏览器 应用程序实现这一功能可以调用RegisterApplicationRest ...

  3. etherlime-1-Quick Start

    https://etherlime.readthedocs.io/en/latest/getting-started.html Quick Start Installing全局安装 npm i -g ...

  4. active developer path ("/Applications/Xcode.app/Contents/Developer")

    -> git xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer" ...

  5. 学习JavaSE 数组

    一维数组 基本概念 1.数组中只允许放同一种类型(可以是父子关系). 2.数组即对象. 例: int[ ] arrs={0,1,2};//arrs即一个对象. 3.数组是定长的,不可以增加或者减少. ...

  6. Linux入门基础(三):Linux用户及权限基础

    用户基础 用户和组 每个用户都拥有一个userid 每个用户都属于一个主组,属于一个或多个附属组 每个组拥有一个groupid 每个进程以一个用户身份运行,受该用户可访问资源限制 每个可登陆用户拥有一 ...

  7. Delphi的idhttp报508 Loop Detected错误的原因

    一般是访问https时才出现“508 Loop Detected”,idhttp+IdSSLIOHandlerSocketOpenSSL,这个在上篇文章中讲过了. 由于该问题网上资料极少,连外文资料也 ...

  8. 天天沉迷于皇上本宫的都是sb

    天天沉迷于皇上.本宫.奴才.太后的都是sb,时不时还要被某王和某平民的爱情感动的落泪.这是病,要治,最有效的治疗方法是38度的夏天去搬砖. 拍这些电视的人真不傻,知道真sb多,这种电视剧才能爆款.

  9. 20155306 白皎 《网络攻防》 Exp2 后门原理与实践

    20155306 白皎 <网络攻防> Exp2 后门原理与实践 一.实践基础 后门程序又称特洛伊木马,其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动作.后程序和电脑病毒最大的差别, ...

  10. 20155332 补交课后测试——ch11网络编程

    20155332 补交课后测试--ch11网络编程 这章的课后测试忘了提交,我课后补做了这章的测试题目,并将知识点和自己的错题汇总如下: 本章知识点总结 11.1 客户端-- 服务器模型 每个网络应用 ...