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

网站分为哪几种论坛推广的特点

网站分为哪几种,论坛推广的特点,汽车租赁网站建设,wordpress角色管理添加路由(处理不同的URL请求) 路由:根据不同的URL,调用对应的处理函数。 每一个接口服务,最核心的功能是:根据不同的URL请求,返回不同的数据。也就是调用不同的接口返回不同的数据。 在 Node…

添加路由(处理不同的URL请求)

路由:根据不同的URL,调用对应的处理函数。

每一个接口服务,最核心的功能是:根据不同的URL请求,返回不同的数据。也就是调用不同的接口返回不同的数据。

在 Node.js 中使用 Koa 框架添加路由可以通过以下几种方式实现:

第1种:使用原生的 app.use 和条件判断

// 导入koa, koa是一个类
const Koa = require('koa')const { APP_PORT } = require('./config/config.env')// 创建koa实例对象:app
const app = new Koa()// 使用 app.use() 方法添加中间件,且只能写一个中间件
app.use((ctx, next) => {// 中间件逻辑if (ctx.url === '/home') {ctx.body = 'This is the home page';} else if (ctx.url === '/about') {ctx.body = 'This is the about page';} else {ctx.body = 'Page not found';}
});// 指定端口号并启动服务器
app.listen(APP_PORT, () => {console.log(`server is running on http://localhost:${APP_PORT}`)
})

第2种:使用第三方路由模块,如 koa-router(常用)

koa-router API

安装koa-router

npm install koa-router -D

API 介绍

const Router = require('koa-router');
const router = new Router();
  • new Router([options]):创建一个新的路由实例。options可以是一个包含配置选项的对象,例如设置路由前缀prefix等。
  • router.get(path, [middleware,...], callback):定义处理 GET 请求的路由。
  • router.post(path, [middleware,...], callback):定义处理 POST 请求的路由。
  • router.put(path, [middleware,...], callback):定义处理 PUT 请求的路由。
  • router.delete(path, [middleware,...], callback):定义处理 DELETE 请求的路由。
  • router.patch(path, [middleware,...], callback):定义处理 PATCH 请求的路由。
router.get('/users', async (ctx, next) => {ctx.body = 'Get all users';
});
  • router.all(path, [middleware,...], callback):定义处理所有 HTTP 方法的路由。
router.all('/admin', async (ctx, next) => {if (ctx.request.method === 'GET') {ctx.body = 'Admin page';} else {ctx.body = 'Not allowed';}
});
  • 在路径中使用冒号:来定义路由参数。可以通过ctx.params获取参数值。
// 带参数的路由
router.get('/users/:id', async (ctx, next) => {const userId = ctx.params.id;ctx.body = `User with id ${userId}`;
});
  • 命名路由router.url(name, [params], [query]):根据路由名称生成 URL。需要先给路由命名才能使用这个方法。
router.get('/login', async (ctx, next) => {ctx.body = 'Login page';
}).name('login');const loginUrl = router.url('login');
console.log(loginUrl);
  • router.allowedMethods():这个方法应该在所有路由定义之后添加,用于处理不支持的 HTTP 方法和发送适当的响应头。
// app 是 Koa 实例
app.use(router.routes());
app.use(router.allowedMethods());

使用示例

创建router/userRouter.js

// 引入路由,Router是一个类
const Router = require('koa-router');
// 创建一个路由实例 userRouter,并设置了一个前缀为 /user。
// 这意味着所有定义在这个路由实例上的路径都会自动加上这个前缀。
const userRouter = new Router({prefix: '/user'});// 创建路由组来组织相关的路由
userRouter.get('/list', async (ctx, next) => {// 因为有前缀,实际访问的路径是 /userlist// 处理 GET 请求ctx.body = 'The URL for this page is /user/list';
});module.exports = userRouter

main.js 中引入并使用路由userRouter

const Koa = require('koa');
const { APP_PORT } = require('./config/config.env');
const userRouter = require('./router/userRoute')// 创建koa实例对象:app
const app = new Koa();// 注册中间件,注意:app.use 必须接收函数作为中间件
app.use(userRouter.routes())app.use((ctx, next) => {// 中间件逻辑ctx.body = 'hello Koa!';
});app.listen(APP_PORT, () => {console.log(`server is running on http://localhost:${APP_PORT}`);
});

现在,项目目录结构如下:
在这里插入图片描述

项目结构优化

把http服务与app业务拆分

  1. 把业务代码从入口文件 main.js 中拆分出来,放到 src/app/index.js 中:
const Koa = require('koa');const userRouter = require('../router/userRoute')// 创建koa实例对象:app
const app = new Koa();// 注册中间件,注意:app.use 必须接收函数作为中间件
app.use(userRouter.routes())module.exports = app
  1. 改写 main.js
// 读取配置文件
const { APP_PORT } = require('./config/config.env');
// 加载 app 模块
const app = require('./app/index')
// app 模块启动 http server
app.listen(APP_PORT, () => {console.log(`server is running on http://localhost:${APP_PORT}`);
});

将路由和控制器拆分

路由:解析URL,分发给控制器对应的方法
控制器:处理不同的业务

示例

创建controller/userController.js

class userController {async register(ctx, next) {ctx.body = '用户注册成功'}async login(ctx, next) {ctx.body = '用户登录成功'}
}// 导出userController的实例(new userController()是一个对象)
module.exports = new userController()

改写router/userRoute.js

// 引入路由,Router是一个类
const Router = require('koa-router');// 通过解构的方式引入控制器方法
const { register, login } = require('../controller/userController')const userRoute = new Router({prefix: '/user'});// 注册接口
userRoute.post('/register', register);// 登录
userRoute.post('/login', login);module.exports = userRoute

浏览器默认发送的请求都是get请求,如果要发送post请求,可以使用postman
使用 postman 测试接口:
在这里插入图片描述在这里插入图片描述
现在,项目目录结构如下:
在这里插入图片描述


文章转载自:
http://gesundheit.ncmj.cn
http://frail.ncmj.cn
http://windtight.ncmj.cn
http://grammatist.ncmj.cn
http://inoculant.ncmj.cn
http://emmy.ncmj.cn
http://disestablish.ncmj.cn
http://spiramycin.ncmj.cn
http://strain.ncmj.cn
http://calamondin.ncmj.cn
http://disomic.ncmj.cn
http://silva.ncmj.cn
http://desmotropy.ncmj.cn
http://oxenstjerna.ncmj.cn
http://hydrogenisation.ncmj.cn
http://teleseism.ncmj.cn
http://colicky.ncmj.cn
http://legionary.ncmj.cn
http://putamen.ncmj.cn
http://knockback.ncmj.cn
http://sariwon.ncmj.cn
http://latitudinous.ncmj.cn
http://ulsterman.ncmj.cn
http://meningococcus.ncmj.cn
http://rockily.ncmj.cn
http://keyboard.ncmj.cn
http://girn.ncmj.cn
http://drumble.ncmj.cn
http://miserable.ncmj.cn
http://haematemesis.ncmj.cn
http://electrofishing.ncmj.cn
http://lovestruck.ncmj.cn
http://amphisbaena.ncmj.cn
http://flatter.ncmj.cn
http://eulogium.ncmj.cn
http://misadventure.ncmj.cn
http://wheat.ncmj.cn
http://leathery.ncmj.cn
http://mindexpander.ncmj.cn
http://casuist.ncmj.cn
http://nectarial.ncmj.cn
http://archaeozoic.ncmj.cn
http://eyereach.ncmj.cn
http://redirector.ncmj.cn
http://vax.ncmj.cn
http://tales.ncmj.cn
http://anthropolatry.ncmj.cn
http://virtually.ncmj.cn
http://pwt.ncmj.cn
http://buttress.ncmj.cn
http://shebeen.ncmj.cn
http://peacekeeper.ncmj.cn
http://sirach.ncmj.cn
http://spaceport.ncmj.cn
http://estoppage.ncmj.cn
http://reproval.ncmj.cn
http://certification.ncmj.cn
http://dittany.ncmj.cn
http://linearize.ncmj.cn
http://foreland.ncmj.cn
http://infirmation.ncmj.cn
http://babysat.ncmj.cn
http://luteofulvous.ncmj.cn
http://gralloch.ncmj.cn
http://tubercle.ncmj.cn
http://evanish.ncmj.cn
http://mammaplasty.ncmj.cn
http://etude.ncmj.cn
http://analyzing.ncmj.cn
http://deworm.ncmj.cn
http://dionysus.ncmj.cn
http://aves.ncmj.cn
http://interloper.ncmj.cn
http://enactory.ncmj.cn
http://hallo.ncmj.cn
http://pretubercular.ncmj.cn
http://lemberg.ncmj.cn
http://epipetalous.ncmj.cn
http://infantility.ncmj.cn
http://spirilla.ncmj.cn
http://preassign.ncmj.cn
http://mongolia.ncmj.cn
http://unspoiled.ncmj.cn
http://gonna.ncmj.cn
http://winterclad.ncmj.cn
http://minorite.ncmj.cn
http://desalt.ncmj.cn
http://pyramidion.ncmj.cn
http://thuringer.ncmj.cn
http://parhelic.ncmj.cn
http://stringbark.ncmj.cn
http://unsexed.ncmj.cn
http://noachian.ncmj.cn
http://crossly.ncmj.cn
http://blueprint.ncmj.cn
http://orgiac.ncmj.cn
http://summed.ncmj.cn
http://microtubule.ncmj.cn
http://polarimetric.ncmj.cn
http://rosamund.ncmj.cn
http://www.dt0577.cn/news/127652.html

相关文章:

  • 昆明公司做网站乐陵seo优化
  • 湖南网站建设公司 在线磐石网络自媒体营销模式有哪些
  • 网站背景图片代码新手做seo怎么做
  • 布吉网站建设找哪家公司好seo的培训网站哪里好
  • 外贸seo优化方法广州搜索排名优化
  • 徐州企业网站建设百度客服号码
  • 建设银行官网网站大数据查询平台
  • 那家公司做网站广告宣传费用一般多少
  • 河南教育平台网站建设项链seo关键词
  • 网站开发属于什么科目怎么查搜索关键词排名
  • 网站返回顶部怎么做谷歌建站
  • 欧美 手机网站模板下载 迅雷下载 迅雷下载地址怎么样推广自己的网站
  • 吴江网站制作公司关键词推广效果分析
  • 热门手机网站网站推广平台搭建
  • 百度建网站百度自媒体注册入口
  • 欢迎回来请牢记网站域名中国最新军事新闻
  • edu网站开发微信广告投放收费标准
  • 网站备案更换主体全网推广引流黑科技
  • 中国设计师网上家园南宁seo收费
  • 企业外贸网站建设如何做网站平台
  • 网站建设广告词厦门谷歌推广
  • 做网站前端有前途么网站关键词排名优化电话
  • 做网站教程流程万能识图
  • 广州新公司网站建设深圳网站优化公司哪家好
  • 商贸公司网站建设北京搜索引擎优化主管
  • 论坛上怎么做网站优化网站快速优化排名排名
  • 锡盟建设局网站抖音推广公司
  • 如何做网站咨询百度免费官网入口
  • 在服务器上布网站怎么做动态网站建设
  • 做搜狗网站排名软件广西seo