版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目十新闻数据接口Basicdatabaseoperation任务一数据库基本操作在小程序开发中,数据存储和管理是不可或缺的一部分。MySQL是一个流行的开源关系型数据库管理系统,而Node.js是一个基于事件驱动、非阻塞I/O的JavaScript运行时环境。通过将Node.js和MySQL结合使用,读者可以轻松地连接到数据库,并进行数据操作和查询。本章节将详细介绍如何在Node.js中连接MySQL数据库,包括安装依赖、创建数据库连接、执行查询和更新操作等。项目十新闻数据接口任务描述创建数据库和数据表
使用Navicate创建数据库名为cms,在MySQL中,创建数据库必须通过SQL语句CREATEDATABASE实现的。CREATEDATABASEcms;创建数据库和数据表
在数据库cms创建两张表,新闻分类表tb_newstype和新闻信息表tb_news。在创建完数据库之后,接下来的工作就是创建数据表。所谓创建数据表,指的是在已经创建好的数据库中建立新表。创建数据表使用的是CREATETABLE语句来完成的。CREATETABLEtb_newstype(idint(11)NOTNULLPRIMARYKEYAUTO_INCREMENT,typenamevarchar(20)CHARACTERSETutf8,statusint(11)NOTNULLDEFAULT0)创建数据库和数据表
创建数据表tb_news的语法如下所示。CREATETABLEtb_news(idint(11)NOTNULLPRIMARYKEYAUTO_INCREMENT,titlevarchar(50)COMMENT'新闻标题',typeidint(11)COMMENT'新闻类型编号',keywordsvarchar(20)COMMENT'关键字',summaryvarchar(255)COMMENT'新闻摘要',authorvarchar(20)COMMENT'新闻作者',comvarchar(50)COMMENT'新闻来源',thumbnailvarchar(100)COMMENT'缩略图',contenttextCOMMENT'新闻内容',addtimeint(11)COMMENT'更新时间',totalcountint(11)COMMENT'浏览次数')新建项目
新建
cms文件夹作为项目根目录,并在项目根目录中运行如下的命令,初始化包管理配置文件。npminit-y
Web应用程序Express是一个保持最小规模的灵活的应用程序开发框架。运行如下的命令,安装express框架。npminstallexpress--save新建项目
在项目cms下新建app.js页面,导入express模板,并监听3000端口,代码实现如下所示。constexpress=require('express')
//导入express模块constapp=express()
//创建express的服务器实例constbodyParser=require('body-parser')app.use(bodyParser.urlencoded({extended:true}))app.use(bodyParser.json())
//解析JSON格式app.listen(3000,()=>{
//调用app.listen方法,指定端口号并启动web服务器
console.log('serverisrunning')})
使用node启动app.js。nodeapp.js安装数据库
在cms项目下安装MySQL,代码如下所示。npminstallmysql连接数据库
在使用node链接mysql的时候需要使用mysql模块去创建连接,而mysql模块创建连接有两种方法:createConnection()与createPool(),接下来我们来说说这两种函数的区别。连接数据库createConnection()方法:createConnection方法用于创建一个单独的MySQL连接。每次调用createConnection都会创建一个新的连接对象,该连接对象与数据库建立连接,并且只能由一个客户端使用。当连接不再需要时,需要手动调用end方法来关闭连接。适用于简单的、低并发的应用场景。constmysql=require('mysql');constconnection=mysql.createConnection({host:'localhost',user:'root',password:'password',database:'mydb'});connection.connect(function(err){if(err)throwerr;console.log('ConnectedtoMySQLdatabase');//执行数据库操作
connection.end();//关闭连接});连接数据库createPool()方法:createPool方法用于创建一个连接池,连接池中包含多个
可重用的连接。连接池允许多个客户端同时使用连接,提高了并发性能。连接池会自动管理连接的分配和释放,可以避免频繁地创建
和销毁连接。适用于高并发的应用场景。constmysql=require('mysql');constpool=mysql.createPool({connectionLimit:10,host:'localhost',user:'root',password:'password',database:'mydb'});pool.getConnection(function(err,connection){if(err)throwerr;console.log('ConnectedtoMySQLdatabase');
connection.release();//释放连接回连接池});测试数据库
测试是否安装成功。在项目cms下新建db.js页面,导入MySQL模块并建立连接,在Node.js应用程序中,使用require语句导入MySQL模块。constmysql=require('mysql')//导入mysql模块constdb=mysql.createPool({
host:'localhost',//表示连接某个服务器上的mysql数据库
user:'root',//数据库的用户名(默认为root)
password:'root',//数据库的密码(默认为root)
database:'cms',//创建的本地数据库名称
})module.exports=db测试数据库
在app.js页面引入db.js文件,通过db.query方法测试数据库是否连接成功。constdb=require('./db')db.query('select1',(err,res)=>{
if(err)returnconsole.log(err.message)
console.log(res)})感
谢
观
看THANK项目十新闻数据接口Operationdatatable任务二操作数据表在Node.js中,使用MySQL实现对数据库的增删改查(简称CRUD)操作是非常常见的。掌握Node.js对MySQL的CRUD操作,可以帮助开发人员轻松创建和管理Web应用程序,这对于想要在后端开发领域开发人员来说是必不可少的技能。项目十新闻数据接口任务描述执行添加语句
在MySQL中增加数据使用的是MySQL的“INSERTINTO”语句。向tb_newstype表增加一条数据,代码如下所示。constdata={typename:'鲜花动态'}constsql="insertintotb_newstype(typename)values(?)"db.query(sql,[data.typename],(error,result)=>{
if(error)returnconsole.log(error.message)
if(result.affectedRows===1){
console.log('插入数据成功')
}})执行添加语句
向表中插入数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过第二种方式快速插入数据,SET?是一种占位符写法,用于指定要插入的数据。代码如下所示。constdata={typename:'鲜花动态'}constsql="insertintotb_newstypeset?"db.query(sql,data,(error,result)=>{
if(error)returnconsole.log(error.message)
if(result.affectedRows===1){
console.log('插入数据成功')
}})执行查询操作
连接到数据库后,我们可以执行SQL语句查询语句并获取结果,以下是一个简单的示例,查询tb_newstype表中的所有数据,并打印出每行的内容。constsql='select*fromtb_newstype'db.query(sql,(error,result)=>{
if(error)returnconsole.log(error.message)
console.log(result)
result.forEach((row)=>{
console.log(row)
console.log('id',row.id)
console.log('typename',row.typename)
})})执行更新语句
除了查询操作,还可以使用连接对象执行各种类型的SQL更新操作,以下是一个简单的示例,演示如何使用连接对象执行INSERT插入操作。constdata={id:'1',typename:'最新动态'}constsql="updatetb_newstypesettypename=?whereid=?"db.query(sql,[data.typename,data.id],(error,result)=>{
if(error)returnconsole.log(error.message)
if(result.affectedRows===1){
console.log('更新数据成功')
}else{
console.log('更新失败')
}})执行删除语句
以下是一个简单的示例,演示如何使用连接对象执行删除DELETE插入操作。constsql="deletefromtb_newstypewhereid=?"db.query(sql,1,(error,result)=>{
if(error)returnconsole.log(error.message)
if(result.affectedRows===1){
console.log('删除数据成功')
}else{
console.log('删除数据失败')
}})执行删除语句
在实际应用中,为了保证数据的安全性,经常会应用标记删除,模拟删除的动作,数据还是保存在数据表。所谓的标记删除,就是在表中设置类似于status这样的状态字段,来标记当前这条数据是否被删除。constsql="updatetb_newstypesetstatus=?whereid=?"db.query(sql,[1,2],(err,results)=>{
if(err)returnconsole.log(err.message)
if(res.affectedRows===1){
console.log('更新数据成功')
}})感
谢
观
看THANK项目十新闻数据接口Implementationofdatainterface任务三数据接口的实现随着科技的不断发展,人们获取信息的方式也在不断改变。在这个信息时代,新闻系统已经成为人们获取新闻资讯的主要渠道之一。本节主要讲述了如何使用Node.js语言开发新闻分类数据接口。由于本章节篇幅有限,数据接口主要实现操作新闻分类插入和查询操作。项目十新闻数据接口任务描述添加数据接口
首先使用Node.js实现添加数据接口,POST请求主要用于向服务器发送数据。POST请求的内容全部在请求体中,下面示例获取req.body.typename的值,该属性主要用于post()方法时传递参数使用。app.post('/api/addNewsType',(req,result)=>{constdata=req.body.typenameconstsql="insertintotb_newstype(typename)values(?)"db.query(sql,data,(error,res)=>{
if(error)returnconsole.log(error.message)
result.json({
err_code:200,
message:res,
affectedRows:res.length})})})添加数据接口
添加数据的接口编写好之后,在微信开发者工具中新建pages/index/index.js页面,编写
onLoad事件函数。通过wx.request()向本地HTTP服务器发送POST请求,并通过data参数传递了一个包含typename。代码如下。Page({
onLoad(){
wx.request({
url:
'http://localhost:3000/api/addNewsType',
method:'post',
data:{
typename:'鲜花动态'
},
success:(res)=>{
console.log(res)
}
})
}})添加数据接口
运行结果如下图所示。查询数据接口
查询数据接口使用app.get(path,callback(req,result)函数,path是路径,callback是个回调函数,req是请求端发送过来的数据,result是响应段的数据。增加db.query(sql,callback)函数执行sql语句。callback(err,res)是执行sql后的回调函数。err是执行sql语句错误时响应的数据,res是执行数据成功响应的结果,具体使用方法如下。app.get('/api/newsT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初级会计经济法基础-初级会计《经济法基础》模拟试卷335
- 【医学课件】加强防范医疗事故(83p)
- 二零二五年度会展中心物业保安活动策划与执行合同
- 二零二五版生物技术产业投资与合作合同3篇
- 二零二五版个人住宅抵押贷款抵押物处置合同样本2篇
- 二零二五年度个人生态旅游项目承包协议3篇
- 二零二五年度商业空间装修设计与施工合同模板3篇
- 二零二五年度个人房产抵押贷款合同纠纷解决条款
- 二零二五版商务办公区物业管理与设施维护合约3篇
- 2025年度个人教育贷款担保合同书
- 销售礼盒营销方案
- 南浔至临安公路(南浔至练市段)公路工程环境影响报告
- 《小英雄雨来》读书分享会
- 初中数学校本教材(完整版)
- 重庆市铜梁区2024届数学八上期末检测试题含解析
- 中央导管相关血流感染防控
- 光的偏振和晶体光学基础课件
- 农业行政执法现状及相关法律法规课件
- 中科大光学讲义08光的偏振
- 黑布林英语阅读《小妇人》-中英伴读
- 小学美术-《神奇的肥皂粉》教学设计学情分析教材分析课后反思
评论
0/150
提交评论