API、框架和中间件之间的区别是什么?
API,框架和中间件有什么区别?本质上,所有这些都为应用程序提供了抽象的低级服务.在这种情况下,为什么DOT NET称为框架和Windows API,好吧... API? 解决方案 API是应用程序程序员接口.它只是一个术语,它指的是程序员将用来与软件接口的方法.例如,dao可能具有save()方法.保存是DAO API的一部分.在高级别,您可能会将添加用户添加到系统功能.多数民众赞成系统API的一部分. 框架是工具或一组工具.例如,Spring是一个框架,可以管理您的控制,依赖注入,并提供精美的模板以使您的生活更轻松.您可以通过其API使用Spring. 中间件是软件,允许许多隔离的系统或功能交互.因此 其他解决方案 an api 是编程库(或库)的接口.它不会强加于您做任何事情的方式.例如. OpenGL不限制您可以使用它. a 框架为您提供问题的部分完成解决方案.您填写空白以制作想要的东西.这可能会加速您的工作,但是您也受到框架的局限性的限制,例如设计
0 2023-12-06
编程技术问答社区
队列管理器和消息代理之间的区别
WebSphere消息代理和队列经理之间有什么区别.我想队列管理器将消息放在队列中,从队列中取出消息,将消息移至支持队列等.那么经纪人的工作是什么? 它位于发布者和队列经理之间,还是在消费者和队列管理器之间? 解决方案 WebSphere MQ是一种使用 amq(异步消息传递协议)的软件.您可以通过WebSphere MQ在应用程序之间实现异步消息传递,这将使您的基础架构松散耦合(即使基础架构中的其他应用程序都降低了应用程序也可以继续工作). > 但是,基础架构中的应用程序可能无法理解彼此的消息格式,因此仅将消息发送到目标应用程序可能还不够.您可以 require transformation . 您可以使用WebSphere MQ API 来编写您自己的程序来做到这一点. 您的程序应该能够做以下操作: 从特定队列(使用MQGET)的接下来的消息 应该能够理解该消息.也就是说,这是XML消息.那么您的程序必须能够解析XML并阅读 其中的数据. 阅读输
2 2023-12-03
编程技术问答社区
Redux架构中的自定义Websocket
我读到这个主题的越多,似乎沿着兔子洞走了.这是一个新的交易应用程序,它通过Web插座接收实时数据,该应用程序基于请求响应范式.除初始负载外,有三个独立的水疗中心,每个用户的操作都触发了一个新的MDXQuery呼叫到数据存储.因此,我需要在componentdidmount()以及各自的ActionCreators上进行新的订阅.我想简化代码以避免重复的代码和冗余. 以下代码有助于建立一个新的订阅通道,以通过Web插座流式响应.(与指定的开放,关闭,发送的大多数sockets.io代码不同) this.subscription = bus.channel(PATH, { mode: bus.wsModes.PULL }).createListener(this.onResponse.bind(this)); this.subscription.subscribe(MDXQuery); 如果我阅读了有关放置Web套接字代码的Redux文档?它提到创建自定义中间件. 链
0 2023-12-02
编程技术问答社区
WSGI:start_response函数的目的是什么?
您可以提供 wsgi wsgi 我无法理解的目的引入start_response (我已经阅读了关于WSGI标准的10个相同的文本.他们都说" WSGI标准是...",他们都没有说" WSGI"是为了. .":() 解决方案 您可以提供WSGI start_response()函数的真实示例吗? 好吧, mod_wsgi 的start_response()函数是在 mod_wgsi.c 他们都没有说" WSGI是为了……为了……" 在 PEP3333 PEP3333 .查看 web-sig邮件列表档案,我遇到 前一段时间我反对删除start_response的决定 下一个版本WSGI的功能,将其作为理由 没有start_colable,异步扩展是不可能的 支持. 现在,我发现删除start_response也会做出 不可能支持Coroutines(或者至少是某些Coroutines 用法). [...] ...在实现这一部分的基本原
2 2023-12-02
编程技术问答社区
如何使Selenium脚本工作得更快?
我使用python硒和砂纸来爬网. 但是我的脚本太慢了, Crawled 1 pages (at 1 pages/min) 我使用CSS选择器而不是XPATH来优化时间. 我更改了中间 'tutorial.middlewares.MyCustomDownloaderMiddleware': 543, 硒太慢还是我应该在设置时更改某些东西? 我的代码: def start_requests(self): yield Request(self.start_urls, callback=self.parse) def parse(self, response): display = Display(visible=0, size=(800, 600)) display.start() driver = webdriver.Firefox() driver.get("http://www.example.com")
0 2023-12-01
编程技术问答社区
��一切都是中间件��
我正在学习用于构建小型Web应用程序服务器端的KOA JS.看着YouTube教程和阅读指南,我遇到了这句话:"一切都是中间件[在KOA中]". 我已经阅读了有关中间件的Wikipedia文章,并搜索了该术语,我对中间件是什么(非常低级别的东西和高级编程之间的中间层)有一个粗略的了解.但是我不明白在Web应用程序和nodejs的上下文中"一切都是中间件"的说法以及为什么这是相关的. 解决方案 您可以将Web应用程序请求视为管道.管道是由管道组成的,每当您认为合适时,您都可以在管道中添加新管道. 现在可以想象,您添加到管道中的每条管道都能在流过管道的流体中做一些特别的事情.例如,如果水是流过管道的流体,则可以添加一个过滤任何污垢和杂质的管道,然后您可以添加将水加热到80c的管道,然后您可以添加一个将粉末牛奶添加到的管道水,然后添加另一个在其中添加粉末巧克力的管道,在管道结束时,您会得到巧克力牛奶. 好吧,想象一下同一件事,但是随着您的使用,流体是您的http请求,
0 2023-11-29
编程技术问答社区
应用引擎(python)在生产中跳过webapp中间件(如Appstats),但在开发服务器上工作正常。
我正在使用App Engine Python托管应用程序,并且很想使用AppStats和其他几个作为中间件运行的库.但是,当我通过appengine_config.py设置中间件(如下所示)时,它在开发服务器上工作,但在生产中不起作用. AppStats和Gaesessions在开发服务器中的魅力就像魅力一样,在生产中根本不起作用.这是我的appengine_config.py,位于我的root/src dir中: from com.impactpy.gaesessions import SessionMiddleware COOKIE_KEY = 'nice try' def webapp_add_wsgi_middleware(app): from google.appengine.ext.appstats import recording app = SessionMiddleware(app, cookie_key=COOKIE_KEY)
0 2023-11-29
编程技术问答社区
UseExceptionHandler对验证错误不起作用
在ASP.NET Core 5中,我使用useExceptionHandler在全球处理异常,除非我发送无效对象,否则它可以正常工作.例如,我发送一个带有null值的对象的必需属性"名称",我在客户端中收到以下错误,但运行函数不会在调试器中命中. {" type":" https://tools.ietf.org/html/rfc7231#section-6.5.1","标题": 或更多验证错误 发生.","状态":400," TraceId":" 00-2428F0FB9C415843BCA2AAEEF08EDA6F6-11EA476EFB792849-00"," erorors"," errors": 需要字段名称"]}} (作为管道中的第一个中间件:) app.UseExceptionHandler(a => a.Run(async context => { //this does not being exceuted f
0 2023-11-29
编程技术问答社区
只为特定的Rack网站使用一些中间件
我有一个运行多个网站的机架服务器. use Rack::Session::Cookie app = lambda do |env| case # Kek Mobile when env['HTTP_HOST'] =~ /mobi.kek.com/ require ::File.expand_path(::File.join(::File.dirname(__FILE__),'code','kek_mobile','main.rb')) selectedApp = KekMobile.new # Kek Facebook App when env['HTTP_HOST'] =~ /fb.kek.com/ require ::File.expand_path(::File.join(::File.dirname(__FILE__),'code','facebook','main.rb')) selectedApp = Fa
0 2023-11-29
编程技术问答社区
与Negroni的特定路线中间件
我使用HTTPROUTER和NEGRONI的Web服务器.用户通过外部OAuth登录此系统.我们将令牌保存到加密的会话中,该会话指示它们是否已登录.我想使用中间件来验证是否存在此令牌,然后将用户踢回到登录页面(如果不存在).我想排除使用身份验证中间件的一些路由. Negroni读书中有一个与大猩猩Mux一起这样做的例子,但是我无法与httprouter一起做到这一点.与我的服务器设置相似的东西如下: router := httprouter.New() router.GET("/login", Login) // auth not required router.GET("/", Index) // auth required s := negroni.Classic() s.Use(sessions.Sessions("example-web-dev", cookiestore.New([]byte("some garbage")))) s.Use(authenticato
2 2023-11-29
编程技术问答社区
Laravel中间件是否应该触发?
我正在使用Laravel 5.4和Vuejs 2.3和VueRouter 我有一个由两个部分组成的网站 example.com example.com/tools 问题 如果我在example.com/tools中,并且如果i reload the page到同一地址example.com/tools中间件checkUsersPublic是触发的,而仅链接到/. . 编辑 如果我从VueRouter.js中删除{ path: '/tools', component: Stats },则不再触发中间件 问题 我该要做什么,以便没有触发中间件? Laravel中的路线 Route::get('/', 'HomeController@home')->middleware('checkUserPublic') Route::get('/tools', 'StatsController@home')->middleware('checkU
4 2023-11-26
编程技术问答社区
根据NUXT中间件的角色重定向用户
我想通过NUXT中间件基于其角色和其他属性重定向. **重定向发生,但陷入了导航卫队,页面自动一次又一次地重新加载(第二次重新加载〜500次). #我的代码 nuxt.config.js router: { middleware: ['role'] }, middleware/role.js export default function ({ redirect }) { if (!window.localStorage.getItem('auth.token')) { return redirect('/auth/login') } } 解决方案 重定向是全新的页面加载,例如第一次到达页面或F5上的页面.由于您在此处进行某种条件,因此它将始终重定向,Vue应用程序将加载,以无限环路再次致电中间件. 制作router.push,或者在重定向之前检查初始页面是否不是您已经在上的页面(不是最好的IMO). 更新答案
2 2023-11-26
编程技术问答社区
如何在特定页面禁用中间件,Nuxt中间件
我声明了一个中间件,该中间件检查nuxt.config.js中每个路由的角色.但想在某些页面中禁用. // in nuxt.config.js => router: { middleware: ['role'] }, // in middleware/role.js => export default function ({app}) { if (!window.localStorage.getItem('auth.token')) { //app.router.push('/auth/login'); console.log('middleware'); } } // i
2 2023-11-26
编程技术问答社区
加载Nuxt项目到现有的Express应用程序
找不到网络上的跟踪. 有没有办法将NUXT项目作为其他Express Server的中间件加载? 文档只是在解释如何运行NUXT服务器. (我熟悉"静态"选项,但我想保持SSR行为) 在 因此,我想将构建或中间件加载到我现有的Express Server. 预先感谢. 解决方案 是的,这是可能的.请参阅官方NUXT模板 - > 或者您可以使用类似的东西 const { Nuxt } = require('nuxt') const config = require('./nuxt.config.js') const nuxt = new Nuxt(config) const app = require('express')() app.use((req, res) => setTimeout(() => { return nuxt.render(req, res) }, 0)) app.listen(port, '0.0.0.0')
0 2023-11-26
编程技术问答社区
如何解决vue js和laravel应用中的cors允许访问控制问题
我几乎尝试了一切.我的前端是在VUE JS中开发的.后端在Laravel.我们为另一个试图获取数据的网站写了API.如果直接访问该网站URL,它提供了所有数据,但是当我尝试通过Axios访问它时,它会给我这个错误. Access to XMLHttpRequest at 'https://example.com/api/tickets/fetch_tickets?page=undefined' from origin 'http://localhost:8000' has been blocked by CORS policy: Request header field x-requested-with is not allowed by Access-Control-Allow-Headers in preflight response. 我试图获取数据的网站表单也在Laravel中构建.我创建了中间件并将其应用于API路由.我添加了Chrome Extension Allo
2 2023-11-26
编程技术问答社区
如何用Nuxt中间件重定向到一个外部网站?
我想在加载页面之前将某些用户重定向到另一个URL(外部),即使用中间件. 由于我在SSR模式中使用NUXT,并通过window.location.replace()将用户重定向,因此您可以看到" Mainsite"一秒钟. 解决方案 这种中间件应该可以解决问题,并且您以前看不到任何内容,因为它将在呈现页面之前执行. middleware/google.js export default ({ redirect }) => { if (myCoolCondition === 'cool') { redirect('https://www.google.com') } } 要将其应用于特定的组件/页面,请使用此 export default { middleware: ['google'] } 这是相关文档: https:https://https://nuxtjs. org/docs/2.x/目录
0 2023-11-26
编程技术问答社区
从中间件传递变量到模板
我是Django首发.到目前为止,我从 view 到模板中学到了通过变量.但是现在我需要将变量传递到我的主布局.我可以在每个页面的def中传递它.但是它的重复太多了.因此,我开始了解中间件. 我创建了Middlewares.py,并将其包含在设置中.在middlewares.py文件中,如何将变量传递给我的主布局? 下面是我当前的中间件.Py内容,我尝试了多种方法并将其评论出来,因为不起作用. from django.db import connections from django.shortcuts import render, redirect class NotificationsMiddleware(object): def process_view(self, request, view_func, view_args, view_kwargs): request.context_data['notification_count'
2 2023-11-13
编程技术问答社区
如何在中间件中设置一个我的所有应用程序都可以访问的变量?
我在Rails 3上使用Ruby,我正在尝试使用Midderwares,以设置可变量@variable_name以后可在控制器中访问. 例如,我的中间件是 class Auth def initialize(app) @app = app end def call(env) @account ||= Account.find(1) @app.call(env) end end 上面的代码正确设置了@account变量,但在我的应用程序中(在控制器,模型,视图等中,这都不可用).那么,我该如何完成? 我看过这个答案这是做我需要的方法,但我想拥有@account>变量"直接访问".也就是说,毫无使用,但可以使其可用,例如在我的观点中, 解决方案 您可以使用'env'.因此,在您的中间件中,您可以这样做: def call(env
0 2023-11-13
编程技术问答社区
Laravel auth中间件抛出非法偏移类型异常
我最近将我的项目从5.6升级为Laravel 7. 升级本身没有任何问题,该项目处于可用状态.现在,我想向项目添加身份验证,以便API用户可以注册和登录. 注册用户和登录工作,但是一旦我使用" auth"中间件,我就会得到此在Authmanager.php的第68行中设置断点并与Xdebug一起逐步完成整个过程时,事实证明,将Guard($ name)设置为$ name设置为httprequest.这就是非法偏移异常的原因,因为resolve()方法仅接受字符串作为参数. 我没有修饰authmanager.php 我在web.php中的路线: //Routes for logged in users //When one of these routes gets called the exception shown above gets thrown Route::group(['middleware' => ['auth']], function () {
0 2023-11-09
编程技术问答社区
带参数的Jest Express测试中间件
我对节点很新,这是我第一次测试应用程序的单元.我在jest上做得很好 // Create a fake request const mockRequest = (sessionData, body) => ({ session: { data: sessionData }, body }); // Create a fake response const mockResponse = () => { const res = {}; res.status = jest.fn().mockReturnValue(res); res.json = jest.fn().mockReturnValue(res); return res; }; const mockNext = () => { const next = jest.fn(); return next; }; 这样我就可以像关注 一样使用它们 doSomething(req, res,
2 2023-11-07
编程技术问答社区