Dart Server开发环境搭建及新建运行项目

  • 开发环境的搭建
    • 1. 下载Dart SDK
    • 2. 下载开发工具
    • 3. 创建Dart Server项目

Dart除了可以使用Flutter进行移动应用开发、Web开发外,还可以进行服务器端开发,也就是后端开发。如建立后端服务、编写接口、查询数据库、任务调度等等后端、服务器端的工作它都可以实现。接下来,我们就开始Dart Server开发的准备工作吧。本文将主要介绍:

  • Dart Server开发环境配置
  • Dart Server开发工具安装
  • Dart Server开发的两种创建Server项目的方式
  • 运行Dart Server项目

开发环境的搭建

Dart Server官方配置英文文档地址:https://www.dartlang.org/tutorials/server/get-started
我们也可以使用DartPad体验和运行Dart程序:https://dartpad.dartlang.org/

Fast to Study Flutter And Dart. QQ群:979966470

1. 下载Dart SDK

官方英文文档地址:https://www.dartlang.org/tools/sdk#install

本文是在Windows环境下进行安装配置的。
Windows下需要先安装chocolatey:https://chocolatey.org/
使用CMD命令安装:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

新建一个chocolatey.bat文件,将上面的这段命令复制进去保存。双击运行这个bat文件就会自动执行安装chocolatey包管理器操作了。
安装好之后,Windows命令窗口执行如下命令进行dart-sdk稳定版安装:

C:\> choco install dart-sdk


如果想安装dev版,输入以下命令:

choco install dart-sdk --pre

如果想更新dart-sdk,输入以下命令:

choco upgrade dart-sdk

Linux需要执行以下命令:

> sudo apt-get update
> sudo apt-get install apt-transport-https
> sudo sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
> sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
> sudo apt-get update
> sudo apt-get install dart

Mac下需要执行以下命令:

 > brew tap dart-lang/dart> brew install dart

当然除了用命令安装Dart SDK外,我们也可以安装Windows版本安装包文件,下载地址:http://www.gekorm.com/dart-windows/

在Dart Web SDK里包含以下工具:

其实主要的命令工具就是:webdev,用来构建和部署Dart Web程序;dart2js,将dart文件转为js文件的编译工具;dartdevc,一个模块化的dart转js文件的编译工具。

chocolatey执行命令安装完dart-sdk后,将Dart SDK的bin目录加入环境变量:

测试我们的Dart SDK环境变量是否配置好,输入如下命令:

dart --version

如能够正确输出版本号,则dart环境变量配置成功。

2. 下载开发工具

官方英文使用文档地址:https://webdev.dartlang.org/tools/webstorm

开发工具官方推荐是WebStorm,当然也可以使用Visual Studio Code,也可以使用命令工具创建、运行项目。如果想支持命令行运行项目,这样快速方便些。可以安装webdev和stagehand(这里需要安装执行下面这两个命令):

> pub global activate webdev
> pub global activate stagehand

安装命令窗口:

注意:如果你想运行使用Dart2以下的版本,WebStorm版本至少要2018.1.3及以上。当然,现在基本都用Dart2及新版本开发了。

接下来下载安装WebStorm:

WebStorm官方下载地址:https://www.jetbrains.com/webstorm/

3. 创建Dart Server项目

最简单的Dart应用程序包括如下部分:

一个以.dart后缀结尾的dart源文件;
一个最顶层的main()方法入口函数。

运行这个dart文件,我们可以使用命令:

dart main.dart

Dart官方 Server项目结构图如下图:

bin目录:主要放置命令行式应用的dart文件,其中的一个dart文件必须有main()入口函数。

lib目录:应用额外使用的代码或者库文件。

pubspec.yaml:应用的配置和描述信息文件,和Flutter的pubspec.yaml功能一致。

命令行应用程序(Command-line apps):

Dart命令行应用程序从命令行独立运行。 命令行应用程序通常用于为Web应用程序提供服务器端支持,但它们也可以是脚本。
Dart VM直接运行Dart代码而无需中间编译。

使用WebStorm创建命令行应用程序:

项目结构目录如下图:

.dart_tool目录:主要是pub使用的相关支持文件、Dart工具相关,我们可以不管它。

bin目录:应用程序入口,一般叫main.dart文件,里面有main()入口函数。

pubspec.lock:生成的文件,指定应用程序所依赖的软件包的版本号。

lib目录:存放命令行程序的其他类、源文件,具体业务逻辑dart文件写在这里。

.packages文件:告诉Dart工具在哪里获取应用程序使用的包。该文件由pub get命令创建。你可以忽略这一点。

运行命令行应用程序:

当然我们也可以使用命令运行:

pub run bin/main.dart

运行效果图片:

关于main()入口函数和其他顶层入口函数:
Dart允许您定义顶级函数,即未封装在类或对象中的函数。 所有应用程序至少有一个顶级函数,即main()函数。
函数声明包含两部分:签名和正文(a signature and a body)。

签名设置函数名称,返回值的数据类型以及输入参数的数量和类型。

方法逻辑代码写在花括号({…})之间。如果正文是单个表达式,那么可以跳过大括号并使用=>简写:

double milesToKM(double miles) => miles / 0.62;

关于文件命名:一般都是小写,单词间用下划线(_)分隔。

以上是简单的命令行应用程序(Command-line apps)创建过程。

官方详细的命令行应用程序(Command-line apps)编写英文文档地址:https://www.dartlang.org/tutorials/server/cmdline ,后续将给大家详细讲解。

示例代码:

main.dart

import 'package:untitled2/untitled2.dart' as untitled2;main(List<String> arguments) {print('Hello world: ${untitled2.calculate()}!');
}

untitled2.dart

int calculate() {return 6 * 7;
}

接下来看下Http Server后端应用(HTTP Clients & Servers)的创建方法:

使用WebStorm创建:

新建项目:

选择Dart项目,点击CREATE:

或者创建Dart Web项目,再新建个bin目录也可以。

项目结构目录如下图:

运行项目:

运行后,可以看到控制台显示的日志,如果看到类似的Dart Server启动成功就可以访问我们的页面了:

页面效果截图:

页面信息监控:http://127.0.0.1:54212/#/vm

官方详细的Http Server后端应用(HTTP Clients & Servers)编写英文文档地址:https://www.dartlang.org/tutorials/server/httpserver ,后续将给大家详细讲解。

示例代码:

import 'dart:io';import 'package:args/args.dart';
import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf/shelf_io.dart' as io;main(List<String> args) async {var parser = ArgParser()..addOption('port', abbr: 'p', defaultsTo: '8080');var result = parser.parse(args);var port = int.tryParse(result['port']);if (port == null) {stdout.writeln('Could not parse port value "${result['port']}" into a number.');// 64: command line usage errorexitCode = 64;return;}var handler = const shelf.Pipeline().addMiddleware(shelf.logRequests()).addHandler(_echoRequest);var server = await io.serve(handler, 'localhost', port);print('Serving at http://${server.address.host}:${server.port}');
}shelf.Response _echoRequest(shelf.Request request) =>shelf.Response.ok('Request for "${request.url}"');

Dart Server开发环境搭建及新建运行项目相关推荐

  1. STM32入门笔记(02):MDK Keil5 开发环境搭建及新建工程模板教程(SPL库函数版)

    目录 Keil5 开发环境搭建 芯片数据手册 Mec 多功能智能小车底盘开发与使用手册 Mec 主控原理图 Mec STM32F103VET6集成主控板资源分配 Mec OLED 显示内容 如何给 S ...

  2. PIC32单片机harmony开发环境搭建并新建harmony工程

    软件:maplab x 编译器:xc32 开发框架:harmony 建议安装时选择英文,此处省略上面三个软件安装过程. 安装完毕后,tools -> plugins -> availabl ...

  3. ionic入门教程第一课--环境搭建和新建ionic项目

    最近由于公司项目需要,自学Ionic.在这里做个备忘,也希望能帮到想自学ionic的其他朋友. 一.首先需要安装node.js环境,对于不了解node.js的同学也没有关系, 因为我们有用到的只是no ...

  4. Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序

    文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...

  5. java服务器要二次编译,ecology项目二次开发环境搭建

    ecology项目二次开发环境搭建 Submitted By Weaver 文档版本控制 文档简要信息: 文档主题(Title) ecology项目二次开发环境搭建 作者(Author) 审批者 (T ...

  6. Docker java项目发布/开发环境搭建

    Docker java项目发布/开发环境搭建 线上部署项目/开发环境搭建命令大全 关闭windows10 指定应用 安装Docker 安装 docker-compose 关于docker容器导致硬盘耗 ...

  7. Python 开发环境搭建及预备知识

    特别说明 如果读者已经搭建了 Python 开发环境,可跳过本章第一部分,另外,如果读者觉得搭建开发环境比较繁琐,可采用 Python 自带的 IDLE 作为开发环境,安装方法请访问:<Pyth ...

  8. Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建

    本帖通过Augusdi的一篇博文进行重新总结 第一步:安装Visual stdio 2010 1.安装VS2010 第二步:安装WDK安装包 2.安装WindowsDriverKit7-GRMWDK_ ...

  9. Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

    1. Intellij IDEA 开发环境搭建 最近在学习scala,除需要编写scala程序外,同时还需要创建maven工程,打成Jar包,而Eclipse在这方面显得使用的不是那么方面,同时由于I ...

最新文章

  1. windows 2003几个优化技巧
  2. React Mixins入门指南
  3. android shell hello world,Android Framework 之HelloWorld(三)
  4. halcon控制算子Control,持续更新
  5. html地区三级联下拉列表,JS-三级联下拉列表
  6. json api_JSON模式在构建和部署API中的作用
  7. 列主消元法解非奇异线性方程组的MATLAB程序
  8. 没有智能安防 智能家居只是一座空中楼阁
  9. 人工智能(9)---人工智能的发展趋势是什么?人工智能的行业应用
  10. Vue.js开发记录--用watch监听对象中属性的变化
  11. 后台性能测试不可不知的二三事
  12. 当post 的字段很多,post的字段并不完全修改(有的值是前端input的值,有的任保留原来原来数据库的值),...
  13. cacti 安装与配置
  14. AEAI Miscdp文件上传功能使用心得
  15. 2011-9-11 凌晨00:46
  16. Android中图片大小和屏幕密度的关系讲解
  17. 洛达悦虎1562M各个版本固件升级教程
  18. 美团上交开源PromptDet:无需标注,开放世界的目标检测器
  19. Netty 超时机制及心跳程序实现
  20. 【车辆计数】基于matlab GUI背景差分法道路行驶多车辆检测【含Matlab源码 1911期】

热门文章

  1. 【报告分享】2021年职场心理健康数据洞察报告-贝智(附下载)
  2. My 的第一篇博客!!!
  3. 使用python和flask建个人博客---如何修改主页的栏目和图片
  4. WINCE USB摄像头驱动终于初步完成了!!
  5. 物联网 - 物流仓储 通用标签 条码常识
  6. SQL:pivot函数的简单用法,实现某列的值转为列名!
  7. XShell命令查看进程
  8. FPS游戏之怪物受到伤害动画
  9. opencv-图像算术运算
  10. Redis分片的实现