登录
首页 >  数据库 >  MySQL

Dart开发服务端,我是不是发烧(骚)了?

来源:SegmentFault

时间:2023-02-18 17:21:33 182浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《Dart开发服务端,我是不是发烧(骚)了?》,聊聊MySQL、后端、dart,我们一起来看看吧!

客户端方面采用了

import 'dart:io';

main() async {
  var server = await HttpServer.bind(
    InternetAddress.loopbackIPv4,
    4040,
  );
  print('Listening on localhost:${server.port}');

  await for (HttpRequest request in server) {
    request.response
      ..write('Hello, world!')
      ..close();
  }
}

上述代码,在本地计算机

import 'dart:io';

main() async {
  var server = await HttpServer.bind(
    InternetAddress.loopbackIPv4,
    4040,
  );
  print('Listening on localhost:${server.port}');

  await for (HttpRequest request in server) {
    routeHandle(request);
  }
}

void routeHandle(HttpRequest request) {
  if (request.uri.path == '/abc') {
    request.response
      ..write('Hello, abc!')
      ..close();
  } else if (request.uri.path == '/admin') {
    request.response
      ..write('Hello, admin!')
      ..close();
  } else {
    request.response
      ..write('Hello, world!')
      ..close();
  }
}

嗯嗯,这里还需要优化,先看看效果。

简单的控制器用起来

控制器一般用来接收请求信息,然后调用系统内部代码处理信息,最后返回响应信息。

废话少说,拿代码来。

新建文件

import 'dart:io';

class HomeController {
  static String index(HttpRequest request) {
    // some other code
    return 'hello world';
  }

  static String abc(HttpRequest request) {
    // some other code
    return 'hello abc';
  }

  static String admin(HttpRequest request) {
    // some other code
    return 'hello admin';
  }
}

import 'dart:io';
import 'HomeController.dart';

main() async {
  var server = await HttpServer.bind(
    InternetAddress.loopbackIPv4,
    4040,
  );
  print('Listening on localhost:${server.port}');

  await for (HttpRequest request in server) {
    routeHandle(request);
  }
}

void routeHandle(HttpRequest request) {
  String content = '';

  if (request.uri.path == '/abc') {
    content = HomeController.abc(request);
  } else if (request.uri.path == '/admin') {
    content = HomeController.admin(request);
  } else {
    content = HomeController.index(request);
  }

  request.response
    ..write(content)
    ..close();
}

嗯嗯,这里还需要优化,以后再说。

简单的数据库操作用起来

在项目依赖文件

ConnectionSettings settings = new ConnectionSettings(
  host: 'localhost', 
  port: 3306,
  user: 'bob',
  password: 'wibble',
  db: 'mydb'
);
MySqlConnection conn = await MySqlConnection.connect(settings);

var results = await conn.query('select name, email from users where id = ?', [1]);

for (var row in results) {
  print('Name: ${row[0]}, email: ${row[1]}');
});

直接写SQL,那不得掉很多头发,简单封装下再来

List condition = [Column('id', '=', 1)];

List> list = await Db('users').where(condition).select();

print(list);

嗯嗯,链式操作,用起来方便多了。

总结

至此,我们使用

Dart
语言,实现了从浏览器请求,到路由,到控制器,并且可以操作数据库。

当然它很简单,真正用起来还需要其他工作。

但是(一定要加但是),至少我们验证了

Dart
开发服务端的可行性,在后端开发的技术选型上又多另一个选择。

你们说呢?

文中关于mysql的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Dart开发服务端,我是不是发烧(骚)了?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>