如何在纯web dart项目中使用dart shelf_路由器

如何在纯web dart项目中使用dart shelf_路由器,dart,Dart,根据此处给出的示例: 我写的路由器部分如下: class Service { Handler get handler { final router = Router(); router.get('/say-hi/<name>', (Request request, String name) { return Response.ok('hi $name'); }); router.get('/user/<userId|[0-9]+&

根据此处给出的示例: 我写的路由器部分如下:

class Service {
  Handler get handler {
    final router = Router();
    router.get('/say-hi/<name>', (Request request, String name) {
      return Response.ok('hi $name');
    });
    router.get('/user/<userId|[0-9]+>', (Request request, String userId) {
      return Response.ok('User has the user-number: $userId');
    });
    router.get('/wave', (Request request) async {
      await Future.delayed(Duration(milliseconds: 100));
      return Response.ok('_o/');
    });
    router.mount('/api/', Api().router);
    router.all('/<ignored|.*>', (Request request) {
      return Response.notFound('Page not found');
    });
    return router;
  }
}
class Api {
  Future<Response> _messages(Request request) async {
    return Response.ok('[]');
  }
    Router get router {
    final router = Router();
    router.get('/messages', _messages);
    router.get('/messages/', _messages);
uter.all('/<ignored|.*>', (Request request) => Response.notFound('null'));
    return router;
  }
}
但在纯web项目中我们不这样做:final server=await shelf_io.service(service.handler,'localhost',8080)

我曾考虑使用shelf router创建单页应用程序,从文档中看到它与dart web js平台兼容

我的期望是: 如果我在网上写下这句话:

router.get('/say-hi/<name>', (Request request, String name) {
  return Response.ok('hi $name');
});
router.get(“/say hi/”,(请求,字符串名){
返回Response.ok('hi$name');
});

然后,当我点击/说hi/ram时,它应该在浏览器中返回“hi ram”

AFAIK shelf用于服务器应用程序,而不是单页web应用程序。正如您所指出的,在一个单一页面的webapp中,您不会创建本地服务器。但是文档中说它支持web javascript,甚至我在同一个dart文件中导入了所有lib并启动了程序,并且启动成功
router.get('/say-hi/<name>', (Request request, String name) {
  return Response.ok('hi $name');
});