Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Dart http_服务器:VirtualDirectory_Dart_Dart Io - Fatal编程技术网

如何使用Dart http_服务器:VirtualDirectory

如何使用Dart http_服务器:VirtualDirectory,dart,dart-io,Dart,Dart Io,我一直在使用dart:routeapi为静态文件提供服务,但我注意到有一个名为http\u-server的核心库,其中包含dart:ioHttpServer的助手类和函数 我特别感兴趣的是类VirtualDirectory,根据文档,它将一个字符串对象作为目录的静态内容,然后调用方法service() var-virtualDirectory=new-virtualDirectory('/var/www/'); serve(新的HttpServer('0.0.0.0',8080)); 这不起

我一直在使用
dart:route
api为静态文件提供服务,但我注意到有一个名为
http\u-server
的核心库,其中包含
dart:io
HttpServer
的助手类和函数

我特别感兴趣的是类
VirtualDirectory
,根据文档,它将一个字符串对象作为目录的静态内容,然后调用方法
service()

var-virtualDirectory=new-virtualDirectory('/var/www/');
serve(新的HttpServer('0.0.0.0',8080));
这不起作用,因为HttpServer没有构造函数——至少在当前版本中没有

virtualDirectory.service(HttpServer.bind('0.0.0.0',8080));
这就是我如何实例化服务器的原因,因为
virtualDirectory.service()
不需要
Future
,最后:

virtualDirectory.service(HttpServer.bind('0.0.0.0',8080).asStream());
也不符合 无法将参数类型“Stream”分配给参数类型 “溪流”


那么,如何将VirtualDirectory连接到服务器?我在网上找不到任何示例,VirtualDirectory源代码也没有明确说明这一点。如果可以的话,我会选择RTFM。链接可以作为答案。

虚拟目录可以在将来由
HttpServer.bind返回的内部工作。您可以使用以下五行代码创建静态文件web服务器:

HttpServer.bind('127.0.0.1',8888)。然后((HttpServer){
VirtualDirectory vd=新的VirtualDirectory('../web/');
vd.jailRoot=false;
虚拟服务(服务器);
});
通过解析URI并在提供文件之前提取服务请求,可以使其更加复杂

导入'dart:io';
导入“包:http_server/http_server.dart”;
main(){
handleService(HttpRequest请求){
打印(“新服务请求”);
write('[{“field”:“value”}]');
request.response.close();
};
绑定('127.0.0.1',8888)。然后((HttpServer服务器){
VirtualDirectory vd=新的VirtualDirectory('../web/');
vd.jailRoot=false;
server.listen((请求){
打印(“request.uri.path:+request.uri.path”);
if(request.uri.path='/services'){
手持服务(请求);
}否则{
打印(“文件请求”);
虚拟服务器请求(请求);
} 
});
});
}