当前位置: 首页 > 知识库问答 >
问题:

Flutter“此函数的返回类型为void,而我想要的返回类型为map”

史逸春
2023-03-14

我得到了这个错误:这个表达式的类型是'void',所以它的值不能被使用。尝试检查是否使用了正确的API;可能会有一个函数或调用返回您意想不到的void。还要检查类型参数和变量,它们也可能是空的。

代码

null

import 'package:angel_framework/angel_framework.dart';
import 'package:angel_hot/angel_hot.dart';
import 'package:logging/logging.dart';
import 'dart:async';
import 'package:mongo_dart/mongo_dart.dart';

main() async {
  var hot = HotReloader(createServer, ['main.dart']);
  await hot.startServer('127.0.0.1', 3000);
}

Future<Angel> createServer() async {
  var app = Angel();
  app.logger = Logger('Log')..onRecord.listen((event) => print(event));
  print('start server..');

  Db db = Db('mongodb://localhost:27017/wearina');
  await db.open();
  print('connected to ${db.databaseName}');

  DbCollection userscoll = DbCollection(db, 'users');
  print('${userscoll.collectionName}');

app.post('/signup', (req, res) async {
    var body = await req.parseBody(); ////   parseBody => Future<void> , I want => Future<Map> ):
    var name = body['name'];
    var lastname = body['lastname'];
    var email = body['email'];
    var phone = body['phone'];
    var pass = body['pass'];
    });
  return app;
}

null

我不明白这是什么。我是新手。这是我的第一个应用程序。有人能帮我一下吗。

共有1个答案

隆璞
2023-03-14

看来parsebody并不返回传递体的映射。它只是确保解析了正文,并且您可以从req.bodyasmap属性访问它。所以您的行应该是:

 await req.parseBody();
 var body = req.bodyAsMap;
 类似资料:
  • Android Kotlin,<代码>api。openOrder返回类型为BaseResponse 我想要的代码是,如果配置文件。值不为null,API返回BaseResponse 但android studio提示,这种有趣的返回类型是任何,如何修复? 排除if-else用法,因为配置文件。值具有许多属性,并且具有配置文件。价值用户名,

  • 注意:请通读后再回答。这看起来是一个简单的问题,但我不确定它是否如此简单。另外,我是打字新手,所以对我宽容点 所以这是用例。我有一个模型用户,我编写了一个通用函数来根据数据库中的电子邮件检查用户是否存在。如果存在,则返回用户对象。 现在,如果它是任何其他对象,那么我可以定义类型并继续我的代码,但它是我从DB得到的用户对象,不知道如何解决这个问题。 我通过提到返回类型“any”找到了解决方法,但我的

  • 我有一个任务,我们要创造一个石头,纸,剪刀的游戏。它指定我们必须创建一个抽象的“工具”类,其中有三个子类:“ToolRock”、“ToolPaper”、“ToolScissors”。抽象类应该有一个“+getFeagnet():tool”函数(用斜体写成)。 我的假设是做一个像这样的抽象函数: RockTool类被指定为具有函数“+get弱点():tool”(不是用斜体写的),我的想法是创建一个覆

  • 我有下面的课,我试图测试。我遇到问题的方法是,因为我试图存根/模拟行为,然后在测试中验证行为。

  • 我正试图从使用observable转换下面的observable代码。使用可管道操作符创建到。 我已经尝试了下面的方法,但是我得到了一个转换错误,无法转换可观察的类型。看不见的。如有任何帮助,我们将不胜感激。

  • 我想创建一个任务来运行串行命令。此时,我不需要从正在进行工作的方法返回任何内容。这可能会在以后发生变化,但我现在很好奇这是如何发生的。 这就是我所拥有的。我想为任务使用单独的方法,而不是创建匿名操作。我尝试返回void,结果是“void不能显式转换为任务”。我也试过了<代码>任务 在此过程中,我使用了一个线程来完成这项任务,但这次我想使用任务。 预计到达时间: 最后,这是我的完整解决方案