这是一个用于学生签到的小例子。主要用到的技术有node和Vue:用node搭建小型服务器,配置好路由,前端用vue写好组件,数据库采用的是mysql。 文件结构如下:

  主要是功能是对数据的增删改查。由于本人当时对es6语法还不太会,所以刚开始时在从数据库里查数据那一块出了点问题,因为从数据查询数据是异步操作,后来通过从网上找了很多资料,发现用promise可以很好的解决异步问题。

  下面是router.js文件里的内容,这是后台配置路由的代码,主要是将对数据的增删改查

const express = require("express");
//定义路由级中间件
const router = express.Router();
//引入数据库连接池,防止数据库超过最大连接数
const query = require("./db");
/*
* 增删改查服务路由
* */
/*新增*/
router.use('/add', function(req, res) {
let userInfo = JSON.parse(req.body.data);
let querysql = "SELECT * FROM userinfo where userName='" + userInfo.userName + "'";
new Promise(function(resolve, reject) {query(querysql, null, function(err, rows, fields) {if(err) {res.json({ok: false,message: '添加失败!查询',error: err})} else {if(rows.length > 0) {res.json({ok: false,message: '添加失败,该用户已经注册了',error: err})} else {let addSql = 'INSERT INTO userinfo(userName,major,school,telephone,onlineApply,time,address) VALUES(?,?,?,?,?,?,?)';let sqlParams = [userInfo.userName, userInfo.major, userInfo.school, userInfo.telephone, userInfo.onlineApply, userInfo.time, userInfo.address];console.log(userInfo);query(addSql, sqlParams, function(err, result) {console.log(result);console.log(err);if(err) {res.json({ok: false,message: '添加失败!'})} else {res.json({ok: true,id: result.insertId,message: '添加成功!'})}res.end();})}}})
})
});
/*删除*/
router.use('/delete', function(req, res) {let userInfo = JSON.parse(req.body.data);let delSql = 'DELETE FROM userinfo where id=' + userInfo.id;query(delSql, null, function(err, rows, fields) {if(err) {res.json({ok: false,message: '删除失败!',error: err})} else {res.json({ok: true,message: '删除成功!'})}res.end();})
});
/*编辑*/
router.use('/edit', function(req, res) {let userInfo = JSON.parse(req.body.data);console.log(userInfo);let editSql = 'UPDATE userinfo SET userName=?,major=?,school=?,telephone=?,onlineApply=?,time=?WHERE id =' + userInfo.id;let editSqlParams = [userInfo.userName,userInfo.major,userInfo.school,userInfo.telephone,userInfo.onlineApply,userInfo.time];query(editSql, editSqlParams, function(err, result) {if(err) {res.json({ok: false,message: '修改失败!'})} else {res.json({ok: true,message: '修改成功!'})}res.end();})
});
/*查询*/
router.use('/query', function(req, res) {let start = 0;let end = 100;let address =req.body.data;let sql = "SELECT * FROM userinfo where address='"+address+"' ORDER BY Id DESC LIMIT " + start + "," + end;let countSql = "SELECT COUNT(id) FROM userinfo";const promise = new Promise(function(resolve, reject) {query(countSql, null, function(err, rows, fields) {resolve(rows);})}).then((count) => {query(sql, null, function(err, rows, fields) {if(err) {res.json({ok: false,message: '查询失败!',info: null})} else {res.json({ok: true,message: '查询成功!',info: rows,total: count[0]["COUNT(id)"]})}res.end();});})
});
/*将路由模块输出*/
module.exports = router;
复制代码

  下面是连接数据库的文件(db.js)中的代码

const mysql = require("mysql");
//连接上数据库(连接池)
const pool = mysql.createPool({host     : 'localhost',user     : 'root',password : '123456',database:'attendance'
});
/*封装数据库操作方法query--用于增删改查*/
const query=function(sql,sqlParams,callback){pool.getConnection(function(err,conn){if(err){callback(err,null,null);}else{conn.query(sql,sqlParams,function(qerr,vals,fields){//释放连接conn.release();//事件驱动回调callback(qerr,vals,fields);});}});
};
/*模块输出*/
module.exports=query;
复制代码

  还有一点需要注意的是因为前后端运行起来时端口不一致,所以存在跨域的问题。因为我们自己在做一些小项目时,处于开发环境,所以直接在前端配置文件中配置代理就可以解决跨域问题,如果是生产环境就需要使用nginx代理跨域了。配置如下所示,3000是node服务器启动后的端口号。

原码地址: github.com/tangjie-93/…

Node+Vue实现对数据的增删改查相关推荐

  1. vue实现对数据的增删改查(CURD)

    vue实现对数据的增删改查(CURD) 导语: 网上看到一个写的比较好的学习文章,转载分享一下 在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的 ...

  2. vue+element-ui实现数据的增删改查及分页

    1.首先获取所有的学生信息并显示在表格上,进行分页 后台要求传的参数: 后台接口封装: element-ui创建数据.必须有HTML表格 <el-table :data="studen ...

  3. vue访问php时做增删改查,node连接mysql生成接口,vue通过接口实现数据的增删改查(一)...

    武汉加油遇新是直朋能到分览支体调!中国加油! 想必许多干用是处框它观有理近货框万理架是察放是近学vue的小伙伴想连接数据库,对数据进行增删改查吧,奈何不知道怎么实现.作为一路踩坑的我,为大家带来我的一 ...

  4. vue修改数据连接数据库_vue实现数据的增删改查

    在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的用户列表里,我们可以录入新用户的信息,也可以对既有的用户信息进行修改.在vue中,我们更应该专注 ...

  5. Vue+ElementUI纯前端技术实现对表格数据的增删改查

    Vue+ElementUI纯前端技术实现对表格数据的增删改查 页面展示效果 一.页面结构 分为三个部分 head body 以及script 一般我个人是在head中引入一些组件库 , 还有一些样式 ...

  6. 从零开始的VUE项目-03(数据的增删改查)

    代码svn地址 (用户名:liu,密码;123) 这一篇中,我们要实现的基本就是这么个东西 这个页面就是我们创建的DataManagement.vue页面,我们的主要代码将写在这里面,这个表格我们将用 ...

  7. node ajax crud,基于node.js和rethinkdb的CRUD(增删改查)Web服务

    基于node.js和rethinkdb的CRUD(增删改查)Web服务 这是一个简单的REST web服务演示案例源码,使用Node.JS和Express 和RethinkDB,后者持久化JSON数据 ...

  8. node.js+express实现简单的增删改查

    主要用node.js和express实现数据的增删改查 一:安装包 需要的包如图所示: "dependencies": {"art-template": &qu ...

  9. D2Admin自制数据的增删改查

    前言 想在D2Admin中进行数据的增删改查,可以直接使用它本身的,但是如果想做增加和修改中调用其他数据库里的内容,那就要重新自己来写相应的按钮和按钮效果. 内容 template <el-bu ...

最新文章

  1. 玩转ECS第6讲 | 弹性计算Region化部署和跨可用区容灾介绍
  2. 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题...
  3. demo 网络运维_网络运维简介
  4. win8计算机安全模式,安全模式,详细教您Win8怎么进入安全模式
  5. Mschart应用。
  6. 一文详解 NanoHttpd 微型服务器原理
  7. html做新浪体育,新浪体育台看不了怎么办?新浪体育台网页版加载失败的解决方法介绍...
  8. 初级电工技术实训考核装置
  9. 15b万用表怎么测电容_万用表怎么用?福禄克15B+一机详解万用表的使用方法
  10. Filter过滤器:使用过滤器保护指定资源,只有登录用户才能访问。若访问内容时用户没有登录则跳转到登录页面。
  11. 怎么把计算机管理的磁盘找出来,电脑分区显示不出来怎么办
  12. 攻防世界 Web高手进阶区 mfw
  13. 使用Proxmox 和 Deskpool 搭建桌面云系统
  14. bag of tricks for image classification with convolutional neural networks
  15. 【Python+OpenCV+sklearn+easygui】人脸(口罩)识别+口罩下人脸补全的系统设计
  16. 莫队算法 ( MO's algorithm )
  17. vue2 ElementUI 表单标签、表格表头添加问号图标提示
  18. python中valueerror是什么意思_python-ValueError:不安全的字符串pi
  19. gbase 8d客户端配置文件
  20. linux at24c 前几个字节错误,I2C操作笔记——以 AT24C04为例

热门文章

  1. webscoket断线重连
  2. JavaScript数据结构与算法——队列详解(下)
  3. python webqq机器人_python模拟开发WebQQ(二)
  4. 个推微服务网关架构实践
  5. 大学暑假第四周进度报告
  6. 栈的应用2---后缀表达式
  7. Python运维-获取当前操作系统的各种信息
  8. Nginx为什么比Apache Httpd高效
  9. mysql innodb引擎--范围查询优化
  10. insert select带来的问题