当前位置: 首页 > news >正文

网站后台上次图片店铺推广软文300字

网站后台上次图片,店铺推广软文300字,入门 做网站 书籍,文件网站建设一.简介koa2是基于 Node.js 平台的下一代 web 开发框架, 致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 可以避免异步嵌套. express中间件是异步回调,Koa2原生支持async/await二.async/awaitconst { rejects } require(assert); const { resolve } req…一.简介koa2是基于 Node.js 平台的下一代 web 开发框架, 致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 可以避免异步嵌套. express中间件是异步回调,Koa2原生支持async/await二.async/awaitconst { rejects } require(assert); const { resolve } require(path/posix); // 普通函数 const getData1 (){return { uname: 普通函数} } console.log(getData1()); // { uname: 普通函数 } // async 普通函数 const getData2 async (){return { uname: async 普通函数} } console.log(getData2()); // Promise { { uname: 普通函数 } } getData2().then(data{console.log(data); // { uname: async 普通函数 } })const getData3 (params){return new Promise((resolve,reject){ //resolve 成功的结果, reject失败的结果if(!params){reject({ err:参数为空! })}else{resolve({ message: 成功! })}}) }getData3().then(data{console.log(1resolve传的数据, data) }).catch(err{console.log(1reject传的数据---,err); }) //reject传的数据--- { err: 参数为空! } // 异步函数使用.catch接收错误信息, 同步函数使用try{}catch{} getData3(222).then(data{console.log(2resolve传的数据, data) }).catch(err{console.log(2reject传的数据---,err); }) //2resolve传的数据 { message: 成功! }三.koa2的基本使用1.安装及创建项目初始化  npm init -y安装   npm i koa -g   使用脚手架的方式安装    npm install -g koa-generator创建项目   koa2 koapro[koapro 项目名称]配置前的项目启动  npm start koapro 或 npm run start2.路由(1)app.js// 引入路由 const books require(./routes/books) // 注册路由 app.use(books.routes(), books.allowedMethods())(2)routes/books.jsget请求, 在获取参数时,可直接使用 ctx.queryconst { searchList } require(../utils/mysqlUtils) // 引入koa const router require(koa-router)() // 设置路由前缀 router.prefix(/books) // 设置路由 router.get(/search,async (ctx,next){ //ctx 相当于 req,res// 页面显示内容 // 方式1: 直接使用ctx.body // ctx.body hahah// 方式2: 使用模板渲染/* await ctx.render(index,{title: 哈哈哈哈}) *///注意 async/await的使用, 避免无法返回查询结果await searchList(ctx, books) }) // 导出 module.exports router(3)routes/userspost 请求, 在获取参数时, 使用 ctx.request.body 接收const router require(koa-router)() const { login } require(../utils/mysqlUtils) router.prefix(/users) router.post(/login, async function (ctx, next) {await login(ctx,users) })module.exports router(4)连接数据库const mysql require(mysql) // 加密模块中的随机生成数 const sqlconfig require(../config/sqlconfig) // 使用连接池 pool.createPool() let pool mysql.createPool(sqlconfig) // 执行数据库 const exec (sql) {return new Promise((resolve, reject) {pool.getConnection((err, conn) {if (err) {//连接错误reject(err)} else {//连接成功conn.query(sql, (err, data) {if (err) {//操作失败reject(err)} else {resolve({code: 0,message: 操作成功!,data,})// resolve(data)}})}// 当连接不再使用时用conn对象的release方法将其归还到连接池中conn.release()})}) } // 查询 获取get请求参数使用 ctx.query const searchList async(ctx, table) {// 根据输入的查询条件查找数据 若无参数则查询所有let sql select * from ${table} where 11let keys Object.keys(ctx.query)let values Object.values(ctx.query)let keyArr []let valArr []let str let i 0keys.forEach((item,index){keyArr.push(item.trim())valArr.push(${values[index].trim()})str and ${keyArr[i]} like %${valArr[i]}% i})sql strconst data await exec(sql)ctx.body data }const login async (ctx, table){// 根据 phone / email 作为账号来登录 输入内容不为空 判断是Email还是phone 根据对应信息查询数据 如果能查到则登录成功 否则登陆失败 let paramsArr Object.values(ctx.request.body)// 有数据let flag 0if(paramsArr paramsArr.length 0){// 遍历数组并去空paramsArr.forEach(item {if(item.trim().length 0){flag}})// 账号 密码存在if(flag 0 ctx.request.body.password.length 0){let username paramsArr.toString().indexOf() 0 ? email : phonelet sql select * from users where if(username email){const {password , email } ctx.request.body// 邮箱登录sql password ${ password } and email ${email} console.log(sql);// 查询数据 查到则登录成功await exec(sql).then(result{console.log(result.data);if(result.data.length 0){ctx.body {code: 1,message: 登录成功!,result}}else{ctx.body {code: 0,message: 登录失败!}}})}if(username phone){const {password , phone } ctx.request.body// 邮箱登录sql password ${ password } and phone ${phone} console.log(sql);// 查询数据 查到则登录成功await exec(sql).then(result{// console.log(result);if(result.data.length 0){ctx.body {code: 1,message: 登录成功!,result}}else{ctx.body {code: 0,message: 登录失败!}}})}}else{// 账号或密码为空ctx.body {code: -1,message : 账号或密码不能为空!}}}else{ctx.body {code: -1,message : 账号和密码不能为空!}}} module.exports {searchList,login }源代码放在这里啦~~~https://download.csdn.net/download/qq_54379580/87443081
http://www.w-s-a.com/news/6726/

相关文章:

  • 海南省零售户电商网站官渡区住房和城乡建设局网站
  • 怎么找淘宝客网站最新军事战况
  • 缺乏门户网站建设网页设计与制作项目教程第二版
  • 手机网站横竖屏一般做建设的是什么公司
  • 免费网站建设无广告网站开发 华景新城
  • 湖州网站制作报价西安网站开发有哪些公司
  • google 浏览器开源seo软件
  • 网站空间是什么意思自己怎样建设网站
  • 国外家装设计网站如何做软件开发
  • 凡科建站登录官网当当网网站建设策划书
  • 网站百度屏蔽关键词杭州排名优化公司
  • h5响应式网站模板下载wordpress鼠标指针
  • 摄影作品投稿网站目前最好的引流推广方法
  • 资源站源码永久dede网站搬家 空间转移的方法
  • 网站建设销售的技巧话语it培训机构
  • 自建本地网站服务器wordpress南充房产网最新楼盘最近房价
  • 郑州代做网站天津哪里能做网站
  • 网站如何做排名网站建设项目的工作分解
  • 洛阳网络建站公司网站开发主流语言
  • 广州各区正在进一步优化以下措施seo值是什么意思
  • 滨州建网站公司京东云 wordpress
  • 网站视频背景怎么做免费的网络推广有哪些
  • 申请网站怎样申请广西壮族自治区专升本业务系统
  • 写作网站哪个网站做ic外单好
  • 苏州和城乡建设局网站撸撸撸做最好的导航网站
  • 网站被同行抄袭怎么办深圳中装建设集团
  • 建站及推广瓦房店 网站建设
  • 怎么查网站是在哪里备案的广州电力建设有限公司网站
  • 做网站自己申请域名还是对方wordpress管理地址
  • 专门做二手书网站或appwordpress首页显示特定分类文章