标签: middleware

AMQP 0-9-1协议中0-9-1代表什么

我在 AMQP 0-9-1 协议中找不到 0-9-1 背后的确切逻辑。请有人解释一下。

spring middleware amqp rabbitmq spring-amqp

4
推荐指数
1
解决办法
714
查看次数

为什么 ActionDispatch::Static 从生产中的中间件堆栈中删除?

我试图了解 Rails 如何在/public下提供静态文件,如果我理解正确,则ActionDispatch::Static中间件负责此操作。

但是,我注意到它仅在开发环境中可用:

$ rake middleware

use Rack::Sendfile
use ActionDispatch::Static
use Rack::Lock
.
.
Run Code Online (Sandbox Code Playgroud)

并在生产中:

$ RAILS_ENV=production rake middleware

use Rack::Sendfile
use Rack::Lock
.
.
Run Code Online (Sandbox Code Playgroud)

那么静态文件在生产中是如何提供的呢?我的猜测是,这是由 Web 服务器本身(apache、puma...等)处理的,以提高性能,这是正确的吗?

如果是这样的话,那么为什么要在开发中为这个任务创建一个专用的中间件呢?

谢谢。

middleware ruby-on-rails

4
推荐指数
1
解决办法
1479
查看次数

laravel VerifyCsrfToken 除了带有通配符的 url?

我尝试构建自己的 API。我开始,所以我目前唯一的模型将是“用户”。这是我想如何调用我的 API:

HTTP/POST http://example.com/api/user/         # get all the users
HTTP/POST http://example.com/api/user/1        # get the user with id "1"
HTTP/POST http://example.com/api/user/1/delete # delete the user with id "1"
...
Run Code Online (Sandbox Code Playgroud)

所以我的文件routes/web.php看起来像这样:

<?php    
    Route::group(['prefix' => 'api'], function() {

        Route::group(['prefix' => 'user'], function() {
            Route::post('/', 'ApiController@allUsers');
        });
    });
?>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为我没有通过Route::resource静态方法,而是通过常规Route::post方法。所以问题是VerifyCsrfToken中间件将触发并尝试检查我的 CSRF 令牌,但由于我希望我的 api 在未来被许多其他建议使用,我更喜欢使用我自己的安全系统(这将是一个公私密钥对,但现在我只想检查我通过 api 分发的数据的完整性,然后我将设置安全算法)。

好消息是 Laravel 非常干净,可以让您在VerifyCSRFToken数组中添加异常 URL,其形状如下:

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier
{
    /** …
Run Code Online (Sandbox Code Playgroud)

php api middleware laravel-middleware laravel-5.4

4
推荐指数
1
解决办法
3816
查看次数

表示下一个抛出错误,因为下一个未定义

我试图在app.post()方法的回调中传递一些预定义的函数。我收到下一个未定义错误。下面是我的代码。请建议我哪里做错了或者我在这里遗漏了任何概念吗?

var express = require('express');

var app = express()

app.post('/api/signup', function(req, res) {
validateParams(req, res, next),
dbCall(req, res, next),
sendResponse(req, res)
})
Run Code Online (Sandbox Code Playgroud)

我定义并导入了每个函数,并在处理后返回 next() 。

我的 validateParams 函数如下:

validateParams = function(req, res, next) {
    console.log("at validator ", req);
    next();
}

module.exports = validateParams;
Run Code Online (Sandbox Code Playgroud)

我的 dbCall 函数如下:

dbCall = function(req, res, next) {
    console.log("at dbCall ", req);
    next();
}

module.exports = dbCall;
Run Code Online (Sandbox Code Playgroud)

我的 sendResponse 函数如下:

sendResponse = function(req, res) {
    console.log("at dbCall ", res);
    res.send("Response sent successfully");
}

module.exports …
Run Code Online (Sandbox Code Playgroud)

javascript middleware node.js express

4
推荐指数
2
解决办法
9795
查看次数

Django - 如何从中间件修改模板上下文

我正在创建一个 Django 中间件,用于管理带有会话的“购物车”。我能够像这样成功修改会话数据:

class ShoppingCartMiddleware:

    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # Ensure shopping cart exists
        if request.session.get('shopping_cart') is None:
            request.session['shopping_cart'] = {'items': []}
        return self.get_response(request)
Run Code Online (Sandbox Code Playgroud)

我现在需要修改模板上下文,以便我的模板可以访问有关购物车的某些信息(商品数量等)。我查看了上下文处理器,但上下文处理器无法查看会话甚至当前上下文。

我尝试process_template_response像这样使用钩子:

def process_template_response(self, request, response):
    response.context_data['cart_num_items'] = len(request.session['shopping_cart']['items'])
    return response
Run Code Online (Sandbox Code Playgroud)

但显然当钩子被执行时,response.context_dataNone.

有谁知道如何使用中间件编辑模板上下文?任何帮助,将不胜感激。

django middleware

4
推荐指数
1
解决办法
1364
查看次数

如何在无论如何都会被调用的链的末尾添加快速中间件(OK/FAIL 响应)?

app有没有办法将中间件添加到 Express或Chain的末尾router,以跟踪res/ 响应是否已发送?

我的意思是,无论是否:

  • 发送响应(字符串、JSON 等)
  • 静态服务文件。
  • 静态文件夹中未找到文件。
  • 已达到包罗万象的回调。
  • 到达错误中间件。

例子

例如,如果我想记录所有内容......

响应是否成功即:它通过中间件提供文件express.static( ... )、从数据库获取的一些数据或自定义中间件,或者再次...如果失败/抛出错误...,有没有办法在最后调用回调?

到目前为止,据我所知,按照设计,如果静态文件成功提供服务(通过express.static),它不会调用next(),因此链停在那里。

对于任何使用 的定制中间件res.send(),您通常不想next()事后调用,因为它可能会导致一些不良的副作用(标头重新发送的错误)。

对于错误处理程序来说,这更容易,因为所有不成功的响应都可以在这里捕获。

但它如何输出成功/不成功的响应呢?这是否应该在没有中间件的情况下完成?

middleware node.js express

4
推荐指数
1
解决办法
4182
查看次数

如何在返回带有上下文参数的函数的函数中模拟 koa 上下文

我有一个文件,myFunction.ts定义并导出一个函数:

export function MyFunction() {
    return async (ctx: Koa.Context) => {
        //some work happens in here
    };
}
Run Code Online (Sandbox Code Playgroud)

该函数在 Koa 中间件文件中被调用,并继承了ctx之前的中间件。在这种情况下,如何创建一个模拟ctx来进行测试?MyFunction()

testing middleware mocking koa jestjs

4
推荐指数
1
解决办法
3895
查看次数

express.json() 与 body-parser

我是 Node.js 的初级开发人员。我一直在为 Express 应用程序导入“body-parser”,但最近我发现 Express 从 v4.16.0 开始就内置了基于 body-parser 的中间件。

我为 body-parser 和 Express 做了 RTFM,但文档对我来说看起来几乎相同。希望有经验的开发者多提意见:

  1. body-parser 和等效的内置 Express 函数(即 express.json())之间有显着差异吗?
  2. 是否有理由导入 body-parser 而不是使用 Express 中已有的解析函数?

middleware node.js express body-parser

4
推荐指数
1
解决办法
6559
查看次数

如何在 NEST JS 中处理特定/不同请求方法的多个中间件?

下面解释我的代码:有两个中间件 AuthenticationMiddleware 和 RequestFilterMiddleware 介入所有请求方法。

我的问题是如何制作RequestFilterMiddleware仅用于 GET 方法的中间件和AuthenticationMiddleware用于所有请求方法的中间件

应用程序模块.ts

export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(AuthenticationMiddleware, RequestFilterMiddleware)
      .forRoutes({ path: '/**', method: RequestMethod.ALL });
  }
}
Run Code Online (Sandbox Code Playgroud)

middleware node.js nestjs nestjs-config

4
推荐指数
1
解决办法
6868
查看次数

如何在HostingStartup中注册中间件?

背景

我希望在不改变原有项目代码的情况下,通过注册插件来添加额外的中间件,但如何获取插件中IApplicationBuilder注册中间件所需的资源是我目前面临的最大问题。 根据Hosting Startup Document,该插件可以通过继承注册,并在项目启动时自动加载,例如:
IHostingStartup

// plugin
public class MyStartup: IHostingStartup
{
     // Implement the IHostingStartup interface
     public void Configure(IWebHostBuilder builder)
     {
         // TODO: I want to get an IApplicationBuilder object to register middleware
     }
}
Run Code Online (Sandbox Code Playgroud)

问题

如何IApplicationBuilder通过 获取对象IWebHostBuilder

c# middleware .net-core asp.net-core

4
推荐指数
1
解决办法
1779
查看次数