当前位置: 首页 > Web前端 > HTML5

前端实训-中级阶段(52)-Express安装,使用Express完成RESTful操作MongoDB

时间:2023-04-05 17:25:46 HTML5

最基本的前端是HTML+CSS+Javascript。掌握这三项技术算是入门,但也只是入门而已。现在前端开发的定义远不止于此。前端小课堂(HTML/CSS/JS),本着提高技术水平,夯实基础知识的中心思想,开课(每周四)。当我们需要启动服务器时,我想大多数人的选择是Express(至少我看到的一些小工具是)。今天先安装一下,然后结合上节课操作MongoDB。快捷安装npminstallexpress--savedependency安装起来还是很简单的,安装完依赖就可以启动我们的服务了。varexpress=require('express')varapp=express()varserver=app.listen(8088,()=>{varhost=server.address().address;varport=server.address().port;console.log('Exampleapplisteningat',host,port);console.log('author:lilnong.top');})app.use(function(req,res,next){res.send('www.lilnong.top')next();})使用监听路由和中间件中间件监听所有请求类型app.use(function(req,res,next){console.log('use-1',req.ip)next();})中间件,监听/api下的所有请求类型app.use('/api',function(req,res,next){console.log('use-2-/api',req.ip)next();})监听/api下的GET请求类型app.get('/api',function(req,res,next){console.log('use-2-/api',req.ip)next();})监听/api下的所有请求类型app.all('/api',function(req,res,next){console.log('/api-all',req.ip)next();})CURD默认express的RESTful实现不会解析post请求的主体。我们需要添加一个中间件app.use(express.json());app.use(express.urlencoded({extended:false}));Specification//GET/task获取任务列表//GET/task/:id查看特定任务//POST/task创建新任务//PUT/task/:id更新id为12的任务//DELETE/task/:id删除id为12的任务实现代码consttaskrouter=express.Router()taskrouter.route('/task').post(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').insert({...req.body,author:'www.lilnong.top',time:new日期(),uuid:`${Date.now()}-${Math.random()}-${Math.random()}-${Math.random()}`})res.send(数据)//fetch(`/restful-api/task`,{//method:'post',//body:newURLSearchParams({cdate:newDate().toLocaleString()}),//})//.then(v=>v.json())//.then(v=>console.log('postrestful-api/task',v))}).get(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').find().toArray()res.send(data)//fetch(`/restful-api/task`)//.then(v=>v.json())//.then(v=>console.log('getrestful-api/task',v))})taskrouter.route('/task/:uuid').get(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').find({uuid:req.params.uuid}).toArray()res.send(data)//fetch(`/restful-api/task/1604050499531-0.7571477556104735-0.2684691266146757-0.455850836469736`)//.then(v=>v.json())//.then(v=>console.log('getrestful-api/task/1604050499531-0.7571477556104735-0.2684691266146757-0.455850836469736',v))}).put(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').updateOne({uuid:req.params.uuid},{$set:{...req.body,utime:newDate()}})res.send(data)//fetch(`/restful-api/task/1604050500761-0.5377497291744571-0.022071316247671557-0.336347246286103`,{//method:'put',//body:newURLSearchParams({udate:newDate().toLocaleString(),uauthor:'www.lilnong.top'}),//})//.then(v=>v.json())//.then(v=>console.log('putrestful-api/task',v))}).delete(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').deleteOne({uuid:req.params.uuid})res.send(data)//fetch(`/restful-api/task/1604050496565-0.660805544561031-0.5097297478722462-0.41065424039611176`,{//方法:'删除',//})//.then(v=>v.json())//.then(v=>console.log('删除restful-api/task/1604050496565-0.660805544561031-0.5097297478722462-0.41065424039611176',v))})app.use('/restful-api',taskrouter)demo代码letdbovarMongoClient=require('mongovarMongoClient').MongovarMongoClient=require('mongoClient')connect('mongodb://localhost:27017/sf-mongodb',{},异步函数(err,db){if(err){reject(err)returnconsole.error(err)}dbo=db.db('sf-mongodb');console.log('mongodb-success')})varexpress=require('express')varapp=express()varserver=app.listen(process.env.NODE_EXPRESS_MONGODB||23456,()=>{varhost=server.address().address;varport=server.address().port;console.log('Exampleapplisteningat',host,port);console.log('author:lilnong.top');})app.use(express.json());app.use(express.urlencoded({extended:false}));app.use(function(req,res,next){控制台。log('header',req.ip)next();})app.use('/api',function(req,res,next){console.log('/api',req.ip)next();})app.get('/api',function(req,res,next){console.log('/api-get',req.ip)next();})app.all('/api',function(req,res,next){console.log('/api-all',req.ip)next();})//GET/task获取任务列表//GET/task/:id查看某个具体的任务//POST/task新建一个任务//PUT/task/:id更新id为12的task//DELETE/task/:id删除id为12的taskconsttaskrouter=express.Router()taskrouter.route('/task').post(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').insert({...req.body,author:'www.lilnong.top',time:newDate(),uuid:`${Date.now()}-${Math.random()}-${Math.random()}-${Math.random()}`})res.send(data)//fetch(`/restful-api/task`,{//方法:'post',//主体:newURLSearchParams({cdate:newDate().toLocaleString()}),//})//.then(v=>v.json())//.then(v=>console.log('postrestful-api/task',v))}).get(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').find().toArray()res.send(data)//fetch(`/restful-api/task`)//.then(v=>v.json())//.then(v=>console.log('getrestful-api/task',v))})taskrouter.route('/task/:uuid').get(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').find({uuid:req.params.uuid}).toArray()res.send(data)//fetch(`/restful-api/task/1604050499531-0.7571477556104735-0.2684691266146757-0.455850836469736`)//.then(v=>v.json())//.then(v=>console.log('getrestful-api/task/1604050499531-0.7571477556104735-0.2684691266146757-0.455850836469736',v))}).put(async(req,res,next)=>{console.log(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').updateOne({uuid:req.params.uuid},{$set:{...req.body,utime:newDate()}})res.send(data)//fetch(`/restful-api/task/1604050500761-0.5377497291744571-0.022071316247671557-0.336347246286103`,{//method:'put',//body:newURLSearchParams({udate:newDate().toLocaleString(),uauthor:'www.lilnong.top'}),//})//.then(v=>v.json())//.then(v=>console.log('putrestful-api/task',v))}).delete(async(req,res,next)=>{console.日志(req.method,req.url,req.params,req.query,req.body)letdata=awaitdbo.collection('user').deleteOne({uuid:req.params.uuid})res.send(data)//fetch(`/restful-api/task/1604050496565-0.660805544561031-0.5097297478722462-0.41065424039611176`,{//遇到hod:'delete',//})//.then(v=>v.json())//.then(v=>console.log('删除restful-api/task/1604050496565-0.660805544561031-0.5097297478722462-0.41065424039611176',v))})app.use('/restful-api',taskrouter)app.use(function(req,res,next){console.log('footer',req.ip)res.send('www.lilnong.top')next();})微信公众号:前端linong参考前端培训目录,前端培训规划,前端培训计划