使用Angular、Openweathermap、Leaflet.js和MongoDB创建天气预报WEB应用程序:①进行Angular环境设置和模板生成

想做的事情

为了学习WEB应用开发,我打算制作一个能够在地图上显示注册位置周间天气预报的WEB应用程序。

这篇文章要做什么

从安装Angular(angular-cli)到生成Web应用程序的模板

可以参考的网站

非常感谢您提供的参考页面。

– Angular文档
– totoho’s WWW入门 – Angular入门

环境

Windows10专业版
PowerShell
Node.js(10.16.3LTS)
npm(6.9.0)
angular-cli(8.3.8)

使用技术

[前端框架] Angular
[地图库] Leafret
[天气服务] Openweathermap
[数据库] MongoDB

角度

谷歌正在开发的前端JavaScript框架。它是用TypeScript实现的。
据说它可以构建MVC(模型-视图-控制器)或MVW(模型-视图-任意)模型。
它还可以处理路由功能,所以只需这个框架就能轻松地创建Web应用程序。

Angular CLI (命令行界面)

用于Angular开发的命令行工具
在Node.js上运行,自动执行生成每个组件和启动服务器等任务。

叶子

OSS的地图库。用于显示/控制同样是OSS地图瓦片的OpenstreetMap。

蒙古数据库

一种被广泛用于与Angular结合的数据库是NoSQL类型的数据库,也被称为MEAN堆栈中的经典数据库。

系统配置

只需要一个选项的话,可以这样简洁地表达:就像这样

システム構成.png

安装Angular并生成一个项目模板。

Angular CLI (Angular Command Line Interface) 可以被简写为 angular-cli。

使用npm安装Angular-cli
使用-g选项进行全局安装

> npm install -g @angular/cli

准备工作区并生成初始应用程序。

在合适的工作目录中,使用Angular-cli命令进行初始构建。

> ng new my-app

请问您想要添加Angular路由吗? (y/N)

安装完所需的库和其他文件后,使用”cd my-app”命令切换到目录。使用”ls”命令可以看到各种文件已经创建了。

/myapp
– 源代码
– .editorconfig
– .gitignore
– angular.json
– browserslist
– karma.conf.js
– package.json
– package-lock.json
– README.md
– tsconfig.app.json
– tsconfig.json
– tsconfig.spec.json
– tslint.json
– .git
– e2e
– node_modules

服务器启动

使用 ng serve 命令启动 Web 服务器。

> ng serve
(中略)
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
i wdm: Compiled successfully.
2019-10-06_12h14_58.png

我试着编辑

打开src/app/app.component.html文件进行编辑,因为这是实际内容。
※请删除所有现有源代码。

<h1>AngularでWEBアプリケーションを作ってみる</h1>

保存后,在ng serve的命令行中将自动执行编译。

i wdm: Compiling...

Date: 2019-10-06T03:47:14.667Z - Hash: 14dbbd95520c919d3d31
4 unchanged chunks
chunk {main} main.js, main.js.map (main) 23.1 kB [initial] [rendered]
Time: 120ms
i wdm: Compiled successfully.

当我打开浏览器看时,页面已经更新了。

2019-10-06_12h49_47.png

组件生成

听说Angular是一个构建屏幕组件并进行组合的机制,所以我立即尝试使用ng generate component命令创建一个组件。

通过使用ng serve命令启动的进程能够自动检测文件更新并进行自动构建和部署,所以不需要终止该进程,可以打开新的控制台进行工作。

> ng g component header
CREATE src/app/header/header.component.html (21 bytes)
CREATE src/app/header/header.component.spec.ts (628 bytes)
CREATE src/app/header/header.component.ts (269 bytes)
CREATE src/app/header/header.component.css (0 bytes)
UPDATE src/app/app.module.ts (475 bytes)
> ng g component menu
CREATE src/app/menu/menu.component.html (19 bytes)
CREATE src/app/menu/menu.component.spec.ts (614 bytes)
CREATE src/app/menu/menu.component.ts (261 bytes)
CREATE src/app/menu/menu.component.css (0 bytes)
UPDATE src/app/app.module.ts (549 bytes)
> ng g component dashboard
CREATE src/app/dashboard/dashboard.component.html (24 bytes)
CREATE src/app/dashboard/dashboard.component.spec.ts (649 bytes)
CREATE src/app/dashboard/dashboard.component.ts (281 bytes)
CREATE src/app/dashboard/dashboard.component.css (0 bytes)
UPDATE src/app/app.module.ts (643 bytes)

※g是generate的简写

在仪表盘页面添加组件

在app.component.html中描述生成的组件。

<app-header></app-header>
<app-menu></app-menu>
<app-dashboard></app-dashboard>

保存后,会在屏幕上显示出来。

画面虽然难以理解,但由三个组件组合构建而成。

2019-10-06_13h21_22.png

组件编辑

编辑生成的空组件并构建Web应用程序的基础部分。

标题栏

请编辑在 src/app/header 中生成的 HTML 和 CSS。

<p>header works!</p>

向左走

<div class="header">
  <img src="../favicon.ico" alt="Angular"> AngularでWEBアプリ作ってみた
</div>

在Angular中使用内置的WEB服务器所具有的默认favicon图标。

.header {
    padding: 4px;
    background-color: #29088A; /*背景は紺色*/
    color: #FFF;               /*文字は白色*/
  }
  .header img {
    width: 18px;
    vertical-align: middle;
  }

自动反映在页面的页眉部分的画面

2019-10-06_13h48_33.png

我没有按F5刷新浏览器。它自己就自动更新了。太厉害了。

菜单

需要同樣的方式修改 src/app/menu 的檔案。

<div class="menu">
        <ul>
        <li><a href="/">Dashboard</a></li>
        </ul>
</div>
.menu {
    background-color: #CED8F6; /*背景は薄青*/
  }
  .menu li {
    padding: 4px 8px;
    display: inline-block;
  }

仪表盘

同样,src/app/dashboard也是如此。

<h1>ダッシュボード</h1>
ここにいろいろ表示する

编辑后的画面 de

慢慢地开始变得像Web应用程序了。

2019-10-06_13h59_58.png

暂时先到这里吧。辛苦了,谢谢。

下次的计划

创建一个用于注册城市的界面(组件/服务)
通过调用Openweathermap的API来获取天气信息

追加 (链接)

1. Angular环境搭建和生成模板
2. 添加组件和服务(注册页面)
3. 调用Openweathermap的API
4. 使用Leaflet显示地图
5. 检测服务属性的更新

bannerAds