如何在纯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');
});