NodeJs Express MySQL 搭建电影网站:第二期(MySQL 数据增删改查操作)

news/2024/5/15 23:48:07/文章来源:https://blog.csdn.net/zhouzhiwengang/article/details/88937953

第一步:编辑相关页面路由信息,使用MySQL填充数据

编辑movie/routes/index.js 文件

var express = require('express');
var router = express.Router();var db=require('./../db.js'); // 引入自定义DB 模块
var bodyParser=require("body-parser");  //引入body-parser模块
//创建application/x-www-form-urlencoded编码解析
var urlencodedParser=bodyParser.urlencoded({extended:false});//访问网站跟目录:localhost:3000/
router.get('/', function(req, res, next) {db.DBConnection.query('select * from movie',function(err, result) {return res.render('index.jade',{title:'网站首页',movies: result});}); 
});//localhost:3000/movie/1
router.get("/movie/:id",function(req,res){db.DBConnection.query('select * from movie where id = ?',[req.params.id], // 路由参数获取:idfunction(err, result) {console.log({title:'电影详情',movies: result});return res.render('detail.jade',{title:'电影详情',movie: result[0]});}); 
});//localhost:3000/admin/add
router.get("/admin/add",function(req,res){res.render('control.jade',{title:'后台电影添加页',movie:{title:'',director:'',country:'', language:'',year:'',poster:'',summary:'',flash:''}});
});//localhost:3000/admin/list
router.get("/admin/list",function(req,res){db.DBConnection.query('select * from movie',function(err, result) {return res.render('list.jade',{title:'后台电影列表',movies: result});}); 
});//localhost:3000/admin/do
router.post("/admin/do", urlencodedParser, function(req,res,next){var params =[req.body.title,req.body.director,req.body.country, req.body.language,'2019',req.body.summary]console.log(params);var query ='insert into movie (title,director,country,language,year,summary) values (?,?,?,?,?,?)';db.DBConnection.query(query,params,function(err,rows,fields){if(err){console.log(err);	return;		}		var success={			    message: '增加成功'};res.send(success);	});
});module.exports = router;

第二步:编辑相关页面

在movie/views文件夹下修改如下文件:index.jade、detail.jade、list.jade、control.jade

control.jade:

extends ./layout.jade
block content.container.rowform.form-horizontal(method="post",action="/admin/do")//电影名字.form-grouplabel.col-sm-2.control-label(for="inputTitle") 电影名字:.col-sm-10input#inputTitle.form-control(type="text",name="title",value="#{movie.title}")//导演.form-grouplabel.col-sm-2.control-label(for="inputTitle") 导演:.col-sm-10input#inputDirector.form-control(type="text",name="director",value="#{movie.director}")//国家.form-grouplabel.col-sm-2.control-label(for="inputCountry") 国家:.col-sm-10input#inputCountry.col-sm-10.form-control(type="text",name="country",value="#{movie.country}")//语言.form-grouplabel.col-sm-2.control-label(for="inputLanguage") 语言:.col-sm-10input#inputLanguage.col-sm-10.form-control(type="text",name="language",value="#{movie.language}")//上映年份.form-grouplabel.col-sm-2.control-label(for="inputYear") 上映年份:.col-sm-10input#inputYear.col-sm-10.form-control(type="text",name="year",value="#{movie.year}")//简介.form-grouplabel.col-sm-2.control-label(for="inputSummary") 简介:.col-sm-10input#inputSummary.col-sm-10.form-control(type="text",name="summary",value="#{movie.summary}").form-group.col-sm-2.col-sm-10input.btn.btn-default(type="submit",name="submit")

detail.jade

extends ./layout.jade
block content.container.rowform.form-horizontal(method="post",action="/admin/do")//电影名字.form-grouplabel.col-sm-2.control-label(for="inputTitle") 电影名字:.col-sm-10input#inputTitle.form-control(type="text",name="title",value="#{movie.title}")//导演.form-grouplabel.col-sm-2.control-label(for="inputTitle") 导演:.col-sm-10input#inputDirector.form-control(type="text",name="director",value="#{movie.director}")//国家.form-grouplabel.col-sm-2.control-label(for="inputCountry") 国家:.col-sm-10input#inputCountry.col-sm-10.form-control(type="text",name="country",value="#{movie.country}")//语言.form-grouplabel.col-sm-2.control-label(for="inputLanguage") 语言:.col-sm-10input#inputLanguage.col-sm-10.form-control(type="text",name="language",value="#{movie.language}")//上映年份.form-grouplabel.col-sm-2.control-label(for="inputYear") 上映年份:.col-sm-10input#inputYear.col-sm-10.form-control(type="text",name="year",value="#{movie.year}")//简介.form-grouplabel.col-sm-2.control-label(for="inputSummary") 简介:.col-sm-10input#inputSummary.col-sm-10.form-control(type="text",name="summary",value="#{movie.summary}").form-group.col-sm-2.col-sm-10input.btn.btn-default(type="submit",name="submit")

index.jade

extends ./layout.jade
block content.container.roweach item in movies.col-md-4.thumbnalla(href="/movie/#{item.id}")img(src="#{item.poster}",alt="#{item.title}").captionh3 #{item.title}p: a.btn.btn-primary(href="/movie/#{item.id}") 查看详情

list.jade

extends ./layout.jade
block content.container.rowtable.table.table-hover.table-borderedtheadtrth 电影名字th 导演th 查看th 更新th 删除tbodyeach item in moviestrtd #{item.title}td #{item.director}td: a(target="_blank",href="../movie/#{item.id}") 查看td: a(target="_blank",href="../movie/update/#{item.id}") 修改td a.btn.btn-danger.del(type="button",href="/admin/delete?id=#{item.id}") 删除

第三步:在movie文件夹下,创建MySQL数据库模板(db.js)

//student 文件夹下
var mysql=require("mysql");
const DB={	    host : '127.0.0.1',	    user : 'root',	    password : '123456',   database : 'movie'
}
const DBConnection=mysql.createConnection({host:DB.host,	    user:DB.user,password:DB.password,database:DB.database,multipleStatements:true
});
DBConnection.connect();
module.exports.DBConnection=DBConnection;

项目结构图:

项目源码地址:https://github.com/zhouzhiwengang/express-demon/tree/master/movie

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_724150.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看论坛隐藏链接_【外链建设】测试了1500个hao123推荐的网站,只为挖掘发能外链的DZ论坛...

点击上面“蓝字”关注!虽然已经过了外链为皇的时代,但外链在新站建设、重点关键词排名等工作场景中依然占据着很重要的位置。因为我工作后,大部分的时间在做品牌SEO,没有积攒什么外链资源;这次要梳理SEO技术&#xff0…

iis服务器网站启动不了,IIS上打不开asp网站怎么办

导读:最近很多朋友都遇到iis上打不开asp的站点这种问题,然后来问我们为什么IIS不支持asp,其实这种问法是错误的,windows系统和asp同属于微软软件系列,都是微软开发,所以互相之间的支持和兼容就无需置疑了&a…

(比较 tika 和正则 ,我更喜欢jsoup ) jsoup 抓取 iteye 网站

jsoup 效果 qq新闻 内容抓取 正则表达 (正则) http://knight-black-bob.iteye.com/blog/2312411 比较 tika 和正则 ,我更喜欢jsoup 正则 比较难写 ,, ,,,, 下面有jar …

(转贴)图解使用VS.NET部署含水晶报表的网站

Crystal Report ,中文名称“水晶报表”,因为做报表的功能强大,所以被 Visual Studio.Net 整合进来了。其中 Visual Studio.Net 2002 中的Crystal Decisions 版本为 1.0 ;Visual Studio.Net 2002 中的Crystal Decisions 版本为 1.1…

使用Ajax技术编写了一个网站

因为工作的原因,有一段时间没有更新博客了,感到非常惭愧,因为提供的博客空间是免费的,而且还有免费的二级域名,应该好好加以利用。 现在网络已进入了web2.0的时代,AJAX技术也十分流行,在这样一种…

NET开发人员必知的八个网站

当前全球有数百万的开发人员在使用微软的.NET技术。如果你是其中之一,或者想要成为其中之一的话,我下面将要列出的每一个站点都应该是你的最爱,都应该收藏到书签中去。对于不熟悉.NET技术的朋友,需要说明一下,.NET提供…

最简单的视频网站(JavaEE+FFmpeg)

http://blog.csdn.net/leixiaohua1020/article/details/15811977/ 本文记录一个最简单的视频网站系统。此前做过一些基于JavaEE中的 SSH (Strut2 Spring Hibernate)的网站系统,但是一直没有做过一个视频网站系统,所以就打算做一个“精简”的视频网站系…

海洋工作室——网站建设专家:FOXMAIL 自动收发设置

你的邮箱单击右键,选择“属性”,然后在弹出的对话框里选择“收邮件”,下面有个“每隔 自动收邮件”把它前面的勾选上,然后在里面填上你希望的时间间隔。 图片操作请参考下图: 转载于:https://www.cnblogs.com/OceanChen/archive…

基于IP$一次 “假冒银行网站的钓鱼***”

IP$大家一定不会陌生,管理型文件共享,伴随微软系列很多年了 很荣幸的成为微软的几大漏洞之一。你只要知道对方的ip,只要拥有相应的技术,就可以在对方电脑上为所欲为。但为什麽微软不结束它呢,因为这个协议是window…

(收藏新闻)能帮你找到网页设计灵感的16个网站

几天前我发了篇《创意灵感哪里寻》的文章,历数了一些我寻找设计灵感时经常访问的网站。在文章的最后,我给大家扔了个问题:“你会到什么网站找设计灵感呢?”。那下面呢,就是一些看官推荐的网站。有些我没听过&#xff0…

Silverlight应用的SEO优化-2

Silverlight应用的SEO优化-2 上一次,我讲了一点使一个Sliverlight应用可被搜索引擎收录索引的一般过程。这一次,我将深入到SilverlightStore搜索引擎优化的应用实例。 示例概要 这个SilverlightStore应用是一个超级简单的应用程序,它真正的用…

著名反恶意软件组织关闭博客网站 抗议 NSA 利用恶意软件攻击公共机构

近期,国外一篇博客披露,著名的反恶意软件组织MalwareMustDie决定关闭其博客网站,以抗议NSA(美国国家安全局)利用黑客工具入侵无辜国家的教育和公共服务器。 文章指出,Shadow Brokers(影子经纪人)团队之前曾泄露NSA黑客工具&#x…

雅虎旗下图片分享网站 Flickr 关闭商业化照片授权服务Marketplace

雅虎旗下图片分享网站 Flickr 关闭商业化照片授权服务Marketplace 责任编辑:editor007 作者:MJ | 2016-09-22 21:56:02 本文摘自:36kr 两年前,雅虎旗下的图片分享网站 Flickr 推出照片授权服务 Marketplace,当大型网站…

分享 一些silverlight网站、第三方控件及开源代码

一、可参考的应用网站 1、网址:http://www.preiskombirechner.ch/Preis_Kombi_Rechner.ebs?ActiveID1191 2、网址:http://www.bestfreecharts.com/ 二、第三方控件: 1、RadControls Silverlight 网址:http://demos.telerik.com/s…

网站设计欣赏:45+靓丽的蓝绿色主题网站作品【上篇】

网站给用户留下第一印象的既不是网站内容,也不是网站布局,而是网站的色彩。色彩给人的视觉效果最明显,一个网站设计成功与否,在某种程度上就取决于设计者对色彩的运用和搭配。这篇文章搜集了45靓丽的蓝色和绿色主题网站作品&#…

linux系统centOS6.5使用goaccess工具分析nginx网站日志

摘要: 网站的log日志分析是每个站长经常做的必备工作,通过网站日志文件我们可以分析各大搜索引擎对网站的爬取情况。最近我的网站做了一些调整,所以想看下日志文件,但因为网站服务器环境是LNMP,所以我就找了一款nginx日…

大型网站架构系列:缓存在分布式系统中的应用(三)

本文是《缓存在分布式系统中的应用》第三篇文章。 上次主要给大家分享了,缓存在分布式系统中的应用,主要从不同的场景,介绍了CDN,反向代理,分布式缓存,本地缓存的常规架构和基本原理。 因为时间关于&#x…

Python爬虫模拟登录带验证码网站

问题分析: 1、爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法。python提供了强大的url库,想做到这个并不难。这里以登录学校教务系统为例,做一个简单的例子。 2、首先得明白cookie的作用,cooki…

网站页面左右_怎么做好一个电商网站?四点细节要注意

”电商”一直成为人们茶余饭后的热门话题,那么说到“怎么做一个电商网站”。阿树先生在这里收集了一些电商网站制作过程中要注意的几个细节。第一、电商网站的首页切勿内容多而繁杂做电商网站就是制作一个提供给用户了解企业文化、产品详情和交易的平台。因此&#…

如何一步一步用DDD设计一个电商网站(五)—— 停下脚步,重新出发

本系列所有文章 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念 如何一步一步用DDD设计一个电商网站(二)—— 项目架构 如何一步一步用DDD设计一个电商网站(三)—— 初涉核心域 如何一步一步用…