mysql 增删改查案列

1.实现一个页面:可以通过书名查询图书的全部信息。

2.实现一个页面:可以修改图书的更新内容:update字段。

3.实现一个页面:通过书的id可以删除书籍。

4.实现一个页面:新增一本图书的信息到数据库中。

以下代码为案例数据:

/*
Navicat MySQL Data Transfer

Source Server         : localhost
Source Server Version : 50726
Source Host           : localhost:3306
Source Database       : book

Target Server Type    : MYSQL
Target Server Version : 50726
File Encoding         : 65001

Date: 2021-06-07 18:07:30
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
  `id` int(11) NOT NULL,
  `bookName` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
  `author` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
  `classify` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
  `intro` varchar(500) CHARACTER SET utf8mb4 DEFAULT NULL,
  `update` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
  `updateDate` date DEFAULT NULL,
  `imgSrc` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO `book` VALUES ('1', '大奉打更人', '卖报小郎君', '仙侠', '《大奉打更人》实体书前三册已正式上架预售,天猫、京东、当当全平台发售。2020年12月3日,晚上8:12这个世界,有儒;有道;有佛;有妖;有术士。警校毕业的许七安幽幽醒来,发现自己', '最新更新 第四十一章 菩提母树', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1019664125/150');
INSERT INTO `book` VALUES ('2', '夜的命名术', '会说话的肘子', '都市', '蓝与紫的霓虹中,浓密的钢铁苍穹下,数据洪流的前端,是科技革命之后的世界,也是现实与虚幻的分界。钢铁与身体,过去与未来。这里,表世界与里世界并存,面前的一切,像是时间之墙近在眼前。黑', '最新更新 170、王家的复仇', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1021617576/150');
INSERT INTO `book` VALUES ('3', '我就是不按套路出牌', '百分之七', '轻小说', ' 一场大战之后,漂亮师姐在你面前娇羞的抬起脸,并缓缓闭了眼睛,这时候你……【选项一:轻轻吻上她的嘴唇。完成奖励:千叶奇谱(地级上品)】【选项二:在她的额头上吻一下。完成奖励:阴阳双', '最新更新 第三百九十九章 入殓', '2021-06-06', 'https://bookcover.yuewen.com/qdbimg/349573/1021578188/150');
INSERT INTO `book` VALUES ('4', '万族之劫', '老鹰吃小鸡', '都市', '我是这诸天万族的劫!《全球高武》和《万族之劫》前五册实体书出版了,天猫、当当、京东都有售,喜欢的可以去看看,谢谢大家支持!', '最新更新 我要发奋图强了!', '2021-05-13', 'https://bookcover.yuewen.com/qdbimg/349573/1018027842/150');
INSERT INTO `book` VALUES ('5', '诡秘之主', '爱潜水的乌贼', '玄幻', '蒸汽与机械的浪潮中,谁能触及非凡?历史和黑暗的迷雾里,又是谁在耳语?我从诡秘中醒来,睁眼看见这个世界:枪械,大炮,巨舰,飞空艇,差分机;魔药,占卜,诅咒,倒吊人,封印物……光明依旧', '最新更新 新书已发', '2020-11-16', 'https://bookcover.yuewen.com/qdbimg/349573/1010868264/150');
INSERT INTO `book` VALUES ('6', '这个人仙太过正经', '言归正传', '仙侠', '半神之躯,比肩凡人!正经人仙,山海薅神!(正经版简介)天高九万里,地有无尽国。人道多不易,山海尽荒泽。【PS②:普一群:1071059242(3000已满),普二群:1041155', '最新更新 第二百三十七章 破局(下)【大杯!】', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1021635590/150');
INSERT INTO `book` VALUES ('7', '全职艺术家', '我最白', '都市', '“音乐、影视、绘画、书法、雕塑、文学……”“你都懂?”“略知一二。”“都会一点的意思?”“嗯,都会亿点的意思。”怀揣系统,靠艺术征服世界,成为各界人士顶礼膜拜的无冕之王。', '最新更新 第八百三十七章 男主角都被人抢走了', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1022282526/150');
INSERT INTO `book` VALUES ('8', '轮回乐园', '那一只蚊子', '轻小说', '苏晓签订轮回契约,进入各个世界执行任务。他曾目睹一个世界崩灭为尘粒,也曾与被遗忘的王者持刃而战。暗鸦在低语,黑渊下巨兽咆哮。欢迎来到,轮回乐园……', '最新更新 请假', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1009817672/150');
INSERT INTO `book` VALUES ('9', '我在少林签到万年', '森萝万象', '玄幻', '苏橙穿越到了一个高武世界,成为了少林寺中的一个看守藏经阁的扫地小和尚。没有修炼的资质,又得遵守清规戒律,想还俗,也得有能力闯过铜人阵才行呀。这可真是要了命了。就在这时……【叮,神级', '最新更新 第三百五十五章 剑斩龙魂', '2021-06-06', 'https://bookcover.yuewen.com/qdbimg/349573/1025365356/150');
INSERT INTO `book` VALUES ('10', '从红月开始', '黑山老鬼', '科幻', '红月亮出现在天上的那一刻开始,全世界的人都成了疯子。除了我!', '最新更新 第四百六十三章 简直太不专业了(四千字)', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1024868626/150');
INSERT INTO `book` VALUES ('11', '我加载了恋爱游戏', '掠过的乌鸦', '轻小说', '【那就变得更俊美,如果可以打动美少女】【如果情话能说得更好听,也请说给她听】【但请记住,不要主动】【让美少女自己喊出来:“俊美的、情话说得好听的东京帅哥啊,我一定要拥有你,你是我的', '最新更新 完本感言', '2021-06-02', 'https://bookcover.yuewen.com/qdbimg/349573/1021671831/150');
INSERT INTO `book` VALUES ('12', '稳住别浪', '跳舞', '都市', '天堂打烊,地狱满员。所以,我留在人间当祸害呀……', '最新更新 第二百二十八章 【喵喵喵?】', '2021-06-06', 'https://bookcover.yuewen.com/qdbimg/349573/1025325411/150');
INSERT INTO `book` VALUES ('13', '黎明之剑', '远瞳', '科幻', '高文穿越了,但穿越的时候稍微出了点问题。在某个异界大陆上空飘了十几万年之后,他觉得自己可能需要一具身体才算是成为一个完整的穿越者,但他并没想到自己好不容易成功之后竟然还需要带着这具', '最新更新 第一千三百零八章 区域性胜利', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1010400217/150');
INSERT INTO `book` VALUES ('14', '魔临', '纯洁滴小龙', '悬疑', '这个世界一直流传着一个传说:终有一日,魔王会降临于这个世界,魔王的麾下,有七尊恐怖的魔头,他们,将带给这个世界绝望的黑暗。《魔临》舵主群:893、107、381(需要验证)《魔临》', '最新更新 第四十章 杀王', '2021-06-06', 'https://bookcover.yuewen.com/qdbimg/349573/1016560323/150');
INSERT INTO `book` VALUES ('15', '长夜余火', '爱潜水的乌贼', '玄幻', '灰土上所有人都相信,埋葬在危险和饥荒中的某个遗迹深处,有通往新世界的道路,只要能找到一把独特的钥匙,打开那扇门,就能进入新世界。在那里,大地是丰饶的,就像流淌着奶与蜜,阳光是灿烂的', '最新更新 第七十六章 艾莎', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1023422452/150');
INSERT INTO `book` VALUES ('16', '十方武圣', '滚开', '玄幻', '末日荒土,世宗三年,天下大乱,民不聊生。中央皇朝崩坏,各地群雄割据,门派独立。魔门妖党隐于暗处作乱,帮派相互征伐,混乱不堪。天灾连连,大旱,酷寒,暴雨,虫灾,人民苦苦挣扎,渴求希望', '最新更新 476 动弹 下(谢流殇曲中生盟主)', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1024088056/150');
INSERT INTO `book` VALUES ('17', '第一序列', '会说话的肘子', '都市', '废土之上,人类文明得以苟延残喘。一座座壁垒拔地而起,秩序却不断崩坏。有人说,当灾难降临时,精神意志才是人类面对危险的第一序列武器。有人说,不要让时代的悲哀,成为你的悲哀。有人说,我', '最新更新 4月18日新书,《夜的命名术》!', '2021-04-17', 'https://bookcover.yuewen.com/qdbimg/349573/1013562540/150');
INSERT INTO `book` VALUES ('18', '亏成首富从游戏开始', '青衫取醉', '游戏', '近日,特约记者对腾达集团总裁裴谦做了专访。腾达集团目前估值已达千亿级别,业务涉及游戏、互联网、数码硬件、文化传媒、餐饮等多个领域,深刻地改变了人们生活的方方面面。而裴谦,也被视为“', '最新更新 第1520章 一个无情的写论文机器', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1016150754/150');
INSERT INTO `book` VALUES ('19', '有请小师叔', '横扫天涯', '玄幻', '镇仙宗,宗主等多位高层突然陨落,门派陷入了混乱。为了恢复安定,避免覆灭,无奈之下,只好请一直在禁地修炼的小师叔出山。这位小师叔,只有18岁,而且,看起来一点修为都没有,就在所有人绝', '最新更新 第三零九章 想离婚,阉了你!【祝大家高考顺利!】', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1024617405/150');
INSERT INTO `book` VALUES ('20', '我的治愈系游戏', '我会修空调', '悬疑', '警察同志,如果我说这是一款休闲治愈系游戏,你们信吗?', '最新更新 第283章 年轻保安', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1025901449/150');
INSERT INTO `book` VALUES ('21', '带着系统来大唐', '农家一锅出', '历史', '大唐开元年,这是一个本应该带领华夏开始冲向巅峰的时期,可结局却是安史之乱。皇帝李隆基,大唐第四次玄武门之变的主角,开元年间,他带领大唐抵御住吐蕃、突厥、契丹所有外邦。可最后又因他而', '最新更新 第一千一七百一十六章 父爱如渊得归列(第四更)', '2021-06-06', 'https://bookcover.yuewen.com/qdbimg/349573/1020244873/150');
INSERT INTO `book` VALUES ('22', '镇妖博物馆', '阎ZK', '悬疑', '世之反常为妖物之性灵为精魂之不散为诡物之异常为怪司隶校尉,旧称卧虎,汉武帝所设,治巫蛊之事,捕奸滑之徒。全球范围内的灵气和神秘复苏,人类摸索着走上修行道路,潜藏在传说中的妖精鬼怪一', '最新更新 第一百八十四章 论山神(感谢书友111130194738862万赏)', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1026722127/150');
INSERT INTO `book` VALUES ('23', '完美世界', '辰东', '玄幻', '一粒尘可填海,一根草斩尽日月星辰,弹指间天翻地覆。群雄并起,万族林立,诸圣争霸,乱天动地。问苍茫大地,谁主沉浮?!一个少年从大荒中走出,一切从这里开始……', '最新更新 我的新书《深空彼岸》上传了', '2021-05-01', 'https://bookcover.yuewen.com/qdbimg/349573/2952453/150');
INSERT INTO `book` VALUES ('24', '神秘复苏', '佛前献花', '仙侠', '“我叫杨间,当你看到这句话的时候我已经死了......”一张诡异的羊皮卷,一只窥视黑暗的眼睛,这是一个活下来的人经历的故事。——————普群1:308819045普群2:91794', '最新更新 第一千零八章熟悉的人', '2021-06-06', 'https://bookcover.yuewen.com/qdbimg/349573/1012584111/150');
INSERT INTO `book` VALUES ('25', '没钱上大学的我只能去屠龙了', '宇宙无敌水哥', '轻小说', '总之岁月漫长,然而值得等待。林年等了十六年,等到了卡塞尔之门的召唤,等来荒诞无稽、热血放纵的青春。', '最新更新 第五百七十一章:思考,复盘,以及对策', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1021624434/150');
INSERT INTO `book` VALUES ('26', '某美漫的传奇人生', '米一克', '科幻', '故事从莱克开始。莱克,性别男,爱好女,最大的梦想就是从那该死的外挂中抽到属于自己的神国。正宫拥有修改现实能力的辣个女人!!普通群群号:806022298全订群群号:33201076', '最新更新 680、抢救神盾大作战(第五更,求订阅!!!!!)', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1025875330/150');
INSERT INTO `book` VALUES ('27', '全球神祇时代', '一夕成道', '科幻', '林霄穿越到一个全民成神的超奇幻超科幻时代。从一个神性生物起始,建立神域,经营眷族信徒,点燃神火,凝聚神格,征战外域,夺取神格。凭借穿越自带的金手指,林霄一路征服无数位面与晶壁系,掠', '最新更新 第四百一十八章 我也要上?', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1024525575/150');
INSERT INTO `book` VALUES ('28', '我在斩妖司除魔三十年', '贰更', '仙侠', '一觉醒来,周易成了大乾斩妖司的行刑官。恰逢妖魔乱世,鬼怪横行,乾坤剧变。周易躲在斩妖司,每天行刑妖魔获得各种奖励。黄庭道经、紫郢仙剑、蟠桃灵根、五色神牛、天罡法术、地煞神通……九天', '最新更新 第二百四十七章 坑蒙拐骗', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1025377681/150');
INSERT INTO `book` VALUES ('29', '我不是野人', '孑与2', '历史', '这一次,不问成绩,只问本心,这一次只想好好写一回书,这一次写的是希望,写的是我心中最深的梦想,我真的好想认认真真的穿越一次,真真切切的在梦里活一次。我本平凡,庸碌,可是,我的梦却一', '最新更新 第一四七章猎象的轩辕', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1025080386/150');
INSERT INTO `book` VALUES ('30', '赤心巡天', '情何以甚', '仙侠', '上古时代,妖族绝迹。近古时代,龙族消失。神道大昌的时代已经如烟,飞剑绝巅的时代终究沉沦……这个世界发生了什么?那埋葬于时间长河里的历史真相,谁来聆听?山河千里写伏尸,乾坤百年描饿虎', '最新更新 第五十九章 青羊镇事', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1016530091/150');
INSERT INTO `book` VALUES ('31', '大明疯王', '星辰玖', '历史', '明末乱世,世人皆疯。一个郡王,如何生存?别无他法,唯有比别人更疯!我是疯王我怕谁!不服?来。本王发个疯,弄死你!', '最新更新 275 一夜变天', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1025941453/150');
INSERT INTO `book` VALUES ('32', '我真没想重生啊', '柳岸花又明', '都市', '万万没想到,社会精英、钻石单身汉的陈汉升居然重生了,一觉醒来变成了高三毕业生。十字路口的陈汉升也在犹豫,宝藏女孩沈幼楚和白月光萧容鱼,应该选择谁?都市重生小说的天花板,年轻人绝对不', '最新更新 完本感言:但愿人长久', '2021-05-30', 'https://bookcover.yuewen.com/qdbimg/349573/1015648531/150');
INSERT INTO `book` VALUES ('33', '视死如归魏君子', '平层', '轻小说', '魏君确认自己被杀死后就能直接无敌,于是他开始疯狂的作死。然后,他发现这个世界有毒。“当初仙门凌驾于朝堂之上作威作福,满朝文武包括朕皆对仙人卑躬屈膝,只有魏君一身是胆,视死如归,在众', '最新更新 第96章 魏君看穿了一切【高考一起加油啊】', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1027440366/150');
INSERT INTO `book` VALUES ('34', '从龙族开始打穿世界', '起飞的大象', '轻小说', '一身怪力的少年来到了龙族的世界。面对着卡塞尔学院的入学辅导,陆晨很方,满车的小龙人,只有他不是混血种……3E考试怎么过?在线等,挺急的!……这是一个少年逐渐变成卡塞尔学院扛把子的故', '最新更新 第一百九十六章:绝对的暴力,终局(感谢Qi点只看Da象盟主的打赏)', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1027068989/150');
INSERT INTO `book` VALUES ('35', '手动灵气复苏,开局引出修炼者', '宝巨要崛起', '玄幻', '十年前周仙复穿越而来,绑定系统。十年间,已经成为了世界级金融寡头。而十年前他就知道末日即将到来,人类只有手动灵气复苏,从而自救!系统:“任务一:至少使全球五十亿人,认知到仙/武的存', '最新更新 第176章:大结局(完本感言)', '2021-06-05', 'https://bookcover.yuewen.com/qdbimg/349573/1027173331/150');
INSERT INTO `book` VALUES ('36', '开局签到荒古圣体', 'J神', '玄幻', '【不废柴,不舔狗,天骄争霸暴爽无敌流】君逍遥穿越玄幻世界,成为荒古世家神子,拥有无敌背景,惊世天赋,更得到签到系统,开局签到一具大成荒古圣体。在泰岳古碑签到,获得六星奖励,神象镇狱', '最新更新 第1034章 迎娶涂山五美,签到八星奖励,男人大礼包', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1021378513/150');
INSERT INTO `book` VALUES ('37', '斗破苍穹', '天蚕土豆', '玄幻', '这里是属于斗气的世界,没有花俏艳丽的魔法,有的,仅仅是繁衍到巅峰的斗气!新书等级制度:斗者,斗师,大斗师,斗灵,斗王,斗皇,斗宗,斗尊,斗圣,斗帝。……吴磊、林允主演的同名电视剧9', '最新更新 《斗破苍穹:斗帝之路》手游·角色传记(下)', '2018-09-19', 'https://bookcover.yuewen.com/qdbimg/349573/1209977/150');
INSERT INTO `book` VALUES ('38', '凶猛道侣也重生了', '雨下的好大', '玄幻', '陆水身为陆家唯一男丁,今天接到了族里大佬的命令:前往慕家退婚。听说慕家天之娇女一夜间修为尽失沦为废物,导致陆家大佬非常不满,欲要退婚,另寻婚选。普普通通的陆水没有拒绝。而当陆水来到', '最新更新 第四百九十五章 曾经的人', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1019254153/150');
INSERT INTO `book` VALUES ('39', '吞噬星空', '我吃西红柿', '科幻', '继《九鼎记》《盘龙》《星辰变》《寸芒》《星峰传说》后,番茄的第六本书!——————简介:星空中。“这颗星球,通体土黄色,没有任何生命存在,直径21000公里,咦,竟然蕴含‘星泪金’', '最新更新 番茄新书《沧元图》已经二十多万字,可以看啦!', '2019-10-03', 'https://bookcover.yuewen.com/qdbimg/349573/1639199/150');
INSERT INTO `book` VALUES ('40', '绍宋', '榴弹怕水', '历史', '绍者,一曰继;二曰导。公元1127年,北宋灭亡。旋即,皇九子赵构在万众期待中于商丘登基,继承宋统,改元建炎。然而,三个月内,李纲罢相,陈东被杀,岳飞被驱逐出军,宗泽被遗弃东京,河北', '最新更新 这次真要请个假', '2021-06-07', 'https://bookcover.yuewen.com/qdbimg/349573/1017281778/150');

以下为html代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <form action="http://localhost:3000/insert" method="POST">
    <p>
      书名:<input type="text" name="bookName">
    </p>
    <p>
      作者:<input type="text" name="author">
    </p>
    <p>
      分类:<input type="text" name="classify">
    </p>
    <p>
      最新更新:<input type="text" name="update">
    </p>
    <p>
      封面地址:<input type="text" name="imgSrc">
    </p>
    <p>
      简介:<textarea name="intro"></textarea>
    </p>
    <button type="submit">提交</button>
  </form>
</body>
</html>

 以下为demo.js代码

const http = require("http");
const db = require("./db");//引入db模块
const queryString = require("querystring")
const moment = require("moment");//引入日期模块
http.createServer((req, res) => {
  // 判断路径
  if (req.url.startsWith("/insert")) {
    // 设置中文
    res.setHeader("content-type", "text/html;charset=utf8");
    // 获取请求参数
    let data = "";
    // 监听事件 只要有数据传入时就会触发
    req.on("data", (chunk) => {
      data += chunk;
    })
    // 监听事件  数据传输完毕后触发
    req.on("end", () => {
      // 将参数转为对象
      let params = queryString.parse(data);
      params.updateDate = moment(new Date()).format("YYYY-MM-DD");
      // 书写sql语句
      let sql = `insert into book`;
      let keys = ``;
      let values = ``;
      for (const key in params) {
        const element = params[key];
        keys += `\`${key}\`,`;
        values += `'${element}',`;
      }
      sql += `(${keys.slice(0,-1)}) values(${values.slice(0,-1)})`
      
      // 执行sql语句
      db.query(sql).then(result => {
        // 判断是否成功
        if (result.affectedRows > 0) {
          res.end("添加成功!");
        } else {
          res.end("添加失败!");
        }
      }).catch(err => {
        res.end("添加失败,失败原因:" + err);
      })
    })

  } else {
    res.end();
  }

}).listen(3000);

console.log("服务器已启动!");

 以下为db.js代码 (封装的执行sql的函数模块)进行增删改需要引入的模块

let db = {};
//引入模块
const mysql = require("mysql");
//创建连接数据库配置
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "123456",
  database: "books"
})
//连接
con.connect()
//封装sql语句
db.query = function (sql) {
  return new Promise((resolve, reject) => {
    //执行创建sql语句
    con.query(sql, (err, result) => {
      if (err) {
        reject(err)
      } else {
        resolve(result)
      }

    })
    con.end();
  })
}
module.exports = db

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <form action="http://localhost:3000/query" method="get">
    <p>书id<input type="text" name="id"></p>
    <p>
    <button type="submit">删除</button>
  </form>
</body>
</html>
//引入db模块
const http = require("http")
const queryString = require("querystring")
const db = require("./db")
http.createServer((req, res) => {
  if (req.url.startsWith("/query")) {
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.setHeader("content-type", "text/html;charset=utf8");
    // 获取get参数
    let param = queryString.parse(req.url.split("?")[1]);
    //书写sql语句
    let sql =`delete from book where id=${param.id}`
    console.log(sql);
    db.query(sql)
      .then(function (result) {
        if (result.affectedRows > 0) {
          res.end('删除成功');
        } else {
          res.end('该书不存在');
        }

      })
      .catch(function (err) {
        console.log(err);
        res.end("查询失败,错误信息为:" + err);
      });
  } else {
    res.end();
  }
}).listen(3000, () => {
  console.log("服务器成功启动");
});
let db = {};
//引入模块
const mysql = require("mysql");
//创建连接数据库配置
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "123456",
  database: "books"
})
//连接
con.connect()
//封装sql语句
db.query = function (sql) {
  return new Promise((resolve, reject) => {
    //执行创建sql语句
    con.query(sql, (err, result) => {
      if (err) {
        reject(err)
      } else {
        resolve(result)
      }

    })
    con.end();
  })
}
module.exports = db

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="http://localhost:3000/query" method="get">
    <p>书名<input type="text" name="bookName"></p>
    <p>更新内容<input type="text" name="update"></p>
    提交<input type="submit">
    </form>
</body>
</html>
const http = require("http")
const queryString = require("querystring")
const db = require("./db")//引入db模块
const moment = require("moment")
http.createServer((req, res) => {
  if (req.url.startsWith("/query")) {
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.setHeader("content-type", "text/html;charset=utf8");
    // 获取get参数
    let param = queryString.parse(req.url.split("?")[1]);
    //书写sql语句
    let sql =`update book set \`update\`='${param.update}' where bookName='${param.bookName}'`;
    // let sql = `update book set \`update\` = '${params.lastUpdate}' WHERE bookName = '${params.bookName}'`;
    db.query(sql)
      .then(function (result) {
        if (result.affectedRows > 0) {
          res.end('更新成功');
        } else {
          res.end('更新失败');
        }

      })
      .catch(function (err) {
        console.log(err);
        res.end("查询失败,错误信息为:" + err);
      });
  } else {
    res.end();
  }
}).listen(3000, () => {
  console.log("服务器成功启动");
})
let db = {};
//引入模块
const mysql = require("mysql");
//创建连接数据库配置
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "123456",
  database: "books"
})
//连接
con.connect()
//封装sql语句
db.query = function (sql) {
  return new Promise((resolve, reject) => {
    //执行创建sql语句
    con.query(sql, (err, result) => {
      if (err) {
        reject(err)
      } else {
        resolve(result)
      }

    })
    con.end();
  })
}
module.exports = db

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <form action="http://localhost:3000/queryScore" method="get">
    <p>书详情:<input type="text" name="bookName"></p>
    <p>
    <button type="submit">查询</button>
  </form>
</body>
</html>
const http=require("http")
const queryString=require("querystring")
const db=require("./db")//引入db模块
http.createServer((req, res) => {
    if (req.url.startsWith("/queryScore")) {
        res.setHeader("Access-Control-Allow-Origin", "*");
        res.setHeader("content-type", "text/html;charset=utf8");
      // 获取get参数
      let params = queryString.parse(req.url.split("?")[1]);
      //书写sql语句
      let sql = `select * from book`;      
      db.query(sql)
      .then(function(result){          
        res.end(`搜索到的图书为
        ${result[0].bookName}
        <p>作者为:${result[0].author}</p>
        <p>类型:${result[0].classify}</p>
        <p>简介:${result[0].intro}</p>
        <p> 更新:${result[0].update}</p>
        <>更新日期:${result[0].updateDate}</>
        <img src="${result[0].imgSrc}"></img>
        `);
      })
      .catch(function(err){
        res.end("查询失败,错误信息为:"+err);
      });
    }else{
      res.end();
    }
  }).listen(3000, () => {
    console.log("服务器成功启动");
  });
let db = {};
//引入模块
const mysql = require("mysql");
//创建连接数据库配置
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "123456",
  database: "books"
})
//连接
con.connect()
//封装sql语句
db.query = function (sql) {
  return new Promise((resolve, reject) => {
    //执行创建sql语句
    con.query(sql, (err, result) => {
      if (err) {
        reject(err)
      } else {
        resolve(result)
      }

    })
    con.end();
  })
}
module.exports = db

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值