【问题标题】:Flutter “this function has a return type of void and I want a return type of map”Flutter “这个函数的返回类型是 void,我想要一个返回类型的 map”
【发布时间】:2021-06-22 08:02:37
【问题描述】:

我收到此错误:此表达式的类型为“void”,因此无法使用其值。 尝试检查您是否使用了正确的 API;可能有一个函数或调用会返回您没想到的 void。还要检查类型参数和变量,它们也可能是无效的。

代码

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;
}

我不明白这是什么。我是新来的。这是我的第一个应用程序。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 检查这个错误来自哪一行。如果需要,您可以将完整日志添加到问题中。我可以从那里帮忙。此错误可能是由于您将函数分配给变量/对象,但由于该函数是无效的(不返回值),因此最终会出现错误。这应该是一个快速修复,但我需要查看完整的代码和错误日志。

标签: android api flutter dart angel-framework


【解决方案1】:

似乎parseBody 没有返回 已传递身体的地图。它只是确保正文 已解析,并且您可以从 req.bodyAsMap 属性访问它。所以你的行应该是:

 await req.parseBody();
 var body = req.bodyAsMap;

【讨论】:

  • 非常感谢(:
猜你喜欢
  • 2015-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-08
相关资源
最近更新 更多