nodejs写增删改查的简单接口

数据库,就是菜鸟教程的例子,一个简单的表

/*
 Navicat MySQL Data Transfer

 Source Server         : 127.0.0.1
 Source Server Version : 50621
 Source Host           : localhost
 Source Database       : RUNOOB

 Target Server Version : 50621
 File Encoding         : utf-8

 Date: 05/18/2016 11:44:07 AM
*/

SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
--  Table structure for `websites`
-- ----------------------------
DROP TABLE IF EXISTS `websites`;
CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
  `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
--  Records of `websites`
-- ----------------------------
BEGIN;
INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '菜鸟教程', 'http://www.runoob.com/', '4689', 'CN'), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

目录结构

//一定要初始化
npm init -y
//安装mysql,express,body-parser,cors
npm install mysql
npm i -S express
npm install body-parser --save
npm install cors --save

package.json,看一下是不是都有这几个依赖

{
    
    
  "name": "backend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    
    
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    
    
    "body-parser": "^1.20.1",
    "cors": "^2.8.5",
    "express": "^4.18.1",
    "mysql": "^2.18.1"
  }
}

CRUD.js,增删改查各写了一个

//引用mysql依赖
const mysql = require("mysql");
//引用express依赖
const express = require("express");
//引用body-parser 解析post传参
const bodyParser = require("body-parser");
//express实例化
const app = express();
//引用 cors
const cors = require("cors");
const {
    
     json } = require("body-parser");
//关闭Form表单传值
app.use(bodyParser.urlencoded({
    
     extended: false }));
//使用Json传值
app.use(bodyParser.json());
//使用cors 解决跨域问题
app.use(cors());

const connection = mysql.createConnection({
    
    
  host: "localhost",
  user: "root", //是用自己的数据库账号
  password: "", //使用自己的数据库密码
  database: "test",
});
// 建立数据库连接
connection.connect();

/**
 * select
 */
app.get("/website", (req, res) => {
    
    
  let sql = "select * from websites";
  connection.query(sql, function (error, results, fields) {
    
    
    if (error) throw error;
    console.log(results);
    // return results;
    return res.json(results);
  });
});

/**
 * delete
 */
app.get("/website/delete/:id", (req, res) => {
    
    
  console.log(req.params);
  console.log(req.params.id);
  let delSql = `DELETE FROM websites where id= ${
      
      parseInt(req.params.id)}`;
  console.log(delSql);
  connection.query(delSql, function (error, results) {
    
    
    if (error) throw error;
    console.log(results);
    // return results;
    return res.json(results);
  });
});

/**
 * insert
 */
app.get("/website/insert", (req, res) => {
    
    
  console.log(req.query);
  console.log(req.body);
  console.log(req.query.id);
  let insertSql = `insert into websites VALUES(null,?,?,?,?)`;
  console.log(insertSql);
  let data = [req.query.name,req.query.url,req.query.alexa,req.query.country]
  connection.query(insertSql, data,function (error, results) {
    
    
    if (error) throw error;
    console.log(results);
    // return results;
    return res.json(results);
  });
});

/**
 * update
 */
 app.get("/website/update", (req, res) => {
    
    
    console.log(req.query);
    console.log(req.body);
    console.log(req.query.id);
    let updateSql = `update websites set name = ?, url = ?, alexa = ?, country = ? where id = ?`;
    console.log(updateSql);
    let data = [req.query.name,req.query.url,req.query.alexa,req.query.country,req.query.id]
    connection.query(updateSql, data,function (error, results) {
    
    
      if (error) throw error;
      console.log(results);
      // return results;
      return res.json(results);
    });
  });
app.listen(3000, () => {
    
    
  console.log("running...");
});

起一下项目,看一下接口
select

insert

http://localhost:3000/website/insert?name=百度&url=https://www.baidu.com&alexa=213&country=cn

insert
update

http://localhost:3000/website/update?id=8&name=百度update&url=https://www.baidu.com&alexa=999&country=us

update
delete

http://localhost:3000/website/delete/8

delete

这样写好的接口皆可以直接使用axios请求了,不过上面的接口有params和query的区别,而且增删改查也不太符合nodejs的规则(nodejs好像都用数组,不用插值),不过简单的使用够了

猜你喜欢

转载自blog.csdn.net/weixin_47896488/article/details/127241161
今日推荐