问题标签 [dart-shelf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1462 浏览

dart - 如何使用shelf_web_socket在同一个端口监听http和ws请求

https://pub.dartlang.org/packages/shelf_web_socket显示了这个例子

我想知道如何将它与我的 HTTP 服务器初始化结合起来

需要做什么才能wsHandler调用 WebSocket 连接并handler继续处理 HTTP 请求(如果可能在同一个端口上),如果可能的话,使用配置的身份验证和会话管理。

我在不同的端口上尝试了它,但使用了身份验证/会话中间件(不知道这是否应该一起使用)

并得到

0 投票
1 回答
1485 浏览

dart - 如何创建/添加为每个请求添加默认标头的中间件

如何将中间件添加到为每个请求添加默认 HTTP 标头的架子管道?

0 投票
3 回答
1889 浏览

dart - 如何使用 Dart 和架子同时提供动态和静态页面?

使用shelf_static通过 Dart 提供静态网页是没有问题的:

我可以shelf_route很好地用于动态网页:

但我正在努力向动态版本添加静态处理程序。我尝试过的事情包括:

或者 ...

或者 ...

home.html如果我请求,所有这些都会给我指定的默认页面,http://localhost:8080/但明确要求现有页面http://localhost:8080/home.html给我 Not Found。

我什至不应该尝试这样做shelf_static吗?如果不是,那么正确的方法是什么?谢谢!

0 投票
2 回答
350 浏览

dart - 如何使用shelf_auth 库验证已建立的会话?

我一直在尝试编写一个简单的服务器来接受用户名/密码凭据,对其进行验证,然后为客户端创建一个 JWT 令牌,然后他们使用该令牌来访问某些路由。我能够做所有事情,直到在服务器端接收和验证客户端的 JWT。

我知道我可能遗漏了一些简单的东西,但似乎我应该在创建 defaultAuthMiddleware 的 authenticate() 函数的第一个参数中有某种处理程序。我错过了什么?

0 投票
2 回答
619 浏览

dart - 如何从飞镖架静态文件处理程序提供聚合物应用程序?

我正在尝试使用架子静态服务器为聚合物应用程序提供服务。我创建下一个结构:

在 server.dart 中,我输入了以下代码:

其余的是 dart 编辑器创建的模板聚合物应用程序。

问题是当我尝试从浏览器访问 localhost:9999 时,它会显示下一个错误:

我想这样做是为了更快的发展方式。在这种情况下,我不需要每次进行更改时都构建聚合物飞镖应用程序。

0 投票
1 回答
76 浏览

dart - AngularDart 转换/部署

我正在 Dart 中构建一个客户端/服务器应用程序,前端使用 Angular,后端使用 Shelf。当我这样做时,pub build它会按预期为 Dart 文件生成 javascript,但不会替换我的 HTML 文件中的 dart 引用。所以在我的 index.html 中,我有以下脚本参考:

这使我的应用程序无法正确加载。如果我手动将其更改为

我的应用程序按预期工作。我的问题是,有没有办法将我的 pub 构建配置为自动执行此操作?还是不应该用 JS 引用替换 dart 文件引用?如果是这样,我如何构建基本服务器?

0 投票
0 回答
203 浏览

dart - 使用 Redstone/Shelf 在 Dart 中流式传输文本

我突然想到,流式传输字符串是有意义的,每个字符串都代表数据库查询中的一个元素,而不是在流程结束时返回它们的整个列表,这可能会更早地在浏览器上获得第一个结果。所以我试图用Redstonewhich uses来实现这个Shelf。这是我的基本测试

只是在某些情况下,Linked-in 人以他们从 Facebook 获得的模式使用“文本流”来快速呈现页面的某些部分并插入一些后者(如果可用),他们在他们使用的 Playframework (Scala) 中实现了这一点Enumerables看起来就像 Dart 流一样。你可以在这个视频中看到它。

我的代码的问题是,虽然我希望它在 1 秒后显示"hello"10"chao" 显示。我得到的是11 秒的等待,然后是完整的文本。如您所见,我Shelf.Response用 a响应 aStream<List<int>>其中每个List<int>只是从原始流转换为字节的字符串。

这是货架问题/功能,还是 Redstone 弄乱了响应并将其转换为未来?有什么解决办法吗?

编辑

我想得到什么

1秒内什么都没有。

1 秒后

11 秒后

我真正得到的

1秒内什么都没有。

11 秒后

0 投票
1 回答
561 浏览

http - 在 Dart 中使用 Shelf 设置多个 set-cookie 标头

我需要在 Shelf 中设置多个“set-cookie”标头,但由于标头是 a Map<String,String>,因此设置第二个会替换第一个,依此类推,因为键是唯一的。我怎样才能在 Dart 中解决这个问题?

0 投票
1 回答
180 浏览

dart - Dart 架子和 rpc 包之间不兼容?(“访问控制请求方法”标头)

似乎有架子和 rpc 包之间的不兼容。

在 rpc [0.4.1] config/api.dart 中:handleHttpOptionsRequest 期望 'access-control-request-method' 标头是一个列表:

当使用架子 [0.5.7] 包时,传递给此方法的 ParsedHttpApiRequest 包含一个“访问控制请求方法”标头,它是一个字符串。

这会产生一个异常......

将 rpc 与 dart.io HttpServer 一起使用时,代码可以正常工作,并且 ParsedHttpApiRequest 有一个字符串列表(带有单个元素)作为“访问控制请求方法”标头的值。

有人成功使用 dart rpc + Shelf 吗?如果是这样,关于如何避免异常的任何想法?

=== [更新] rpc 修复后,前面提到的问题似乎已修复。感谢那!我现在遇到另一个问题,但我还没有详细调查。堆栈跟踪是:

货架[0.5.7]货架_rpc [0.0.3] RPC [0.4.2]:

=>在运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时查看不兼容性

0 投票
1 回答
131 浏览

dart - 运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时不兼容

运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时不兼容。

在运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时,似乎存在不兼容性。

抛出的错误是(对于货架[0.5.7]、货架_rpc[0.0.3]、rpc[0.4.2]:):

解决此问题的一种解决方法是更改​​shelf_rpc.dart 以用字符串替换列表:

输出: