使用Angular和MongoDB来构建具有登录功能的博客应用程序
Angular 是一个一站式框架,用于使用相同的可重用代码创建移动和 Web 应用程序。使用 Angular,您可以将整个应用程序划分为可重用的组件,从而更轻松地维护和重用代码。
在本教程系列中,您将学习如何开始使用 Angular 和 MongoDB 作为后端创建 Web 应用程序。您将使用 Node.js 来运行服务器。
在本教程的整个过程中,您将使用 Angular、Node.js 和 MongoDB 构建一个博客应用程序。
在本教程中,您将了解如何开始设置应用程序并创建 Login 组件。
开始使用
让我们开始安装 Angular CLI。
npm install -g @angular/cli
安装 Angular CLI 后,创建一个名为 AngularBlogApp 的项目文件夹。
mkdir AngularBlogApp
cd AngularBlogApp
从项目文件夹中,使用以下命令创建一个新的 Angular 应用:
ng new client
创建 client 应用程序后,导航到项目文件夹并使用节点包管理器 (npm) 安装所需的依赖项。
cd client
npm install
使用 npm 启动客户端服务器。
npm start
您应该让应用程序在 http://localhost:4200/ 上运行。
设置应用程序
您的 Angular Web 应用程序将有一个根组件。在 src/app 文件夹中创建一个名为 root 的文件夹。创建一个名为 root.component.html 的文件并添加以下 HTML 代码:
<h3>Root Component
</h3>
添加一个名为 root.component.ts 的文件并添加以下代码:
import { Component } from '@angular/core';@Component({selector: 'app-root',templateUrl: './root.component.html'
})
export class RootComponent {}
删除文件 app.component.html、app.component.ts、app.component.scss 和 app.component.spec.ts。 src/app 文件夹内只有一个名为 app.module.ts 的文件。
在 app.module.ts 文件中导入 RootComponent 。
import { RootComponent } from './root/root.component';
将 RootComponent 包含在 ngModules 中并引导它。
@NgModule({declarations: [RootComponent],imports: [BrowserModule,FormsModule],providers: [],bootstrap: [RootComponent]
})
保存更改并重新启动服务器。当应用程序加载时,您将显示 RootComponent。
您将使用 Angular Router 在我们的博客应用程序中进行路由。因此,在 src/app 文件夹内名为 app.routing.ts 的新文件中导入与路由相关的依赖项。
import { RouterModule, Routes } from '@angular/router';
import { ModuleWithProviders } from '@angular/core/src/metadata/ng_module';
定义路由路径以及组件,如下所示:
export const AppRoutes: Routes = [{ path: '', component: LoginComponent }
];
导出路由以创建包含所有路由提供者的模块。
export const ROUTING: ModuleWithProviders = RouterModule.forRoot(AppRoutes);
以下是 app.routing.ts 文件的外观:
import { RouterModule, Routes } from '@angular/router';
import { ModuleWithProviders } from '@angular/core/src/metadata/ng_module';import { LoginComponent } from './login/login.component';export const AppRoutes: Routes = [{ path: '', component: LoginComponent }
];export const ROUTING: ModuleWithProviders = RouterModule.forRoot(AppRoutes);
如上面的代码所示,您尚未创建 LoginComponent。添加它是为了清楚起见。
在 app.module.ts 文件中导入 ROUTING 类。
import { ROUTING } from './app.routing';
将其包含在 NgModule 导入中。
imports: [BrowserModule,ROUTING,FormsModule
]
将 RouterOutlet 放置在 root.component.html 页面中。这是渲染路由组件的地方。
<router-outlet></router-outlet>
在 src/app 文件夹内创建一个名为 login 的文件夹。在 login 文件夹中,创建一个名为 login.component.ts 的文件并添加以下代码:
import { Component } from '@angular/core';@Component({selector: 'app-login',templateUrl: './login.component.html'
})
export class LoginComponent {constructor() {}}
创建一个名为 login.component.html 的文件并添加以下代码:
<h3>Login Component
</h3>
保存以上更改并重新启动服务器。根据应用程序加载时定义的路由,将显示 LoginComponent 。
相关文章:
使用Angular和MongoDB来构建具有登录功能的博客应用程序
Angular 是一个一站式框架,用于使用相同的可重用代码创建移动和 Web 应用程序。使用 Angular,您可以将整个应用程序划分为可重用的组件,从而更轻松地维护和重用代码。 在本教程系列中,您将学习如何开始使用 Angular 和 MongoDB 作…...
ChatGPT 与前端技术实现制作大屏可视化
像这样的综合案例实分析,我们可以提供案例,维度与指标数据,让ChatGPT与AIGC 帮写出完整代码,并进行一个2行2列的布局设置。 数据与指令如下: 商品名称 销量 目标 完成率 可乐 479 600 79.83% 雪碧 324 600 54.00% 红茶 379 600 63.…...
视频监控/视频云存储EasyCVR平台接入华为ivs3800平台提示400报错,如何解决?
开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频云存储/安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频…...
c++基础数据结构
基础数据结构 目录 • 线性结构 • 二叉堆 • 并查集 • 哈希表 • 应用举例 一、线性结构 基础知识 • 数组 • 带头结点的双链表 – He a d 结点 : 虚拟头结点 – Fir s t 结点 : 第一个有实际内容的结点 • 队列 : 循环队列与 Open-Close 表 例 1. 最…...
微服务-sentinel详解
文章目录 一、前言二、知识点主要构成1、sentinel基本概念1.1、资源1.2、规则 2、sentinel的基本功能2.1、流量控制2.2、熔断降级 3、控制台安装3.1、官网下载jar包3.2、启动控制台 4、项目集成 sentinel4.1、依赖配置4.2、配置文件中配置sentinel控制台地址信息4.3、配置流控4…...
【MTK平台】根据kernel log分析wifi 连接的时候流程
一 概要: 本文主要讲解根据kernel log分析下 当前路径下(vendor/mediatek/kernel_modules/connectivity/wlan/core/gen4m/)wifi scan的时候代码流程 二. Log分析: 2.1)可以知道WiFi在连接的时候先通过scanSearchBssDescByScoreForAis方法扫描捕获到了需要连接的SSID &q…...
【SpringBoot】两种配置文件, 详解 properties 和 yml 的语法格式, 使用方式, 读取配置
文章目录 前言一、配置文件的作用二、两种配置文件格式1, properties 格式语法2, properties 格式缺点3, yml 格式语法4, yml 格式缺点5, yml 支持更多类型 三、配置文件的读取三、不同环境下的配置文件总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助…...
基于微信小程序的文化宣传平台的设计与实现(Java+spring boot+微信小程序+MySQL)
获取源码或者论文请私信博主 演示视频: 基于微信小程序的文化宣传平台的设计与实现(Javaspring boot微信小程序MySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java…...
一款windows的终端神奇,类似mac的iTem2
终于找到了一款windows的终端神奇。类似mac的iTem2 来,上神器 cmder cmder是一款windows的命令行工具,就是我们的linux的终端,用起来和linux的命令一样。所以我们今天要做的是安装并配置cmder 二、问题解决 1、方式一:降低scala版本 可以选择降低Scala的版本&…...
探秘二叉树后序遍历:从叶子到根的深度之旅
本篇博客会讲解力扣“145. 二叉树的后序遍历”的解题思路,这是题目链接。 本题的思路是: 先创建一个数组,用来存储二叉树后序遍历的结果。数组的大小跟树的结点个数有关。树的结点个数可以使用递归实现,即总个数左子树结点个数右…...
2023全国大学生数学建模A题思路+模型+代码+论文(比赛开始后持续更新)
目录 1.A题思路模型:9.7晚上比赛开始后,第一时间更新,获取见文末名片 3 全国大学生数学建模竞赛常见数模问题常见模型分类 3.1 分类问题 3.2 优化问题 详细思路见此名片,开赛第一时间更新 1.A题思路模型:9.7晚上比…...
从输入URL到页面展示过程:深入解析网络请求与渲染
推荐阅读 项目实战:AI文本OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 史上最全文档AI绘画stablediffusion资料分享 AI绘画关于SD,MJ,GPT,SDXL百科全书 AI绘画 stable …...
Go 使用 Gorm 将操作信息集成到链路跟踪 Jaeger,进行增删改查使用举例,并做可视化UI界面展示(附源码)
Go 使用 Gorm 将操作信息集成到链路跟踪 Jaeger,进行增删改查使用举例(附源码)。 为了增强程序的可观测性,方便问题定位,在发起数据库操作请求时我们也可以调用代码统一集成链路跟踪的能力,Jaeger 是当今比较流行的选择。使用 Gorm 来将操作信息集成到 Jaeger 中。 全面…...
【JavaScript精通之道】掌握数据遍历:解锁现代化遍历方法,提升开发效率!
🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📚 前言 📘 1. reduce方法 📘 2. forEach方法 📘 3. map方法…...
opencv android sdk 使用中的问题
Plugin with id ‘kotlin-android’ not found 在build.gradle(:app)中添加以下内容 buildscript {ext {Kotlin_Verion "1.9.10"}dependencies {classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$Kotlin_Verion"}repositories {mavenCentral()} …...
《向量数据库指南》——向量数据库与人工智能是一对“双生子
在信息化社会中,数据的产生、储存和处理都成为了现代生活和工作中不可或缺的一部分。在这背景下,向量数据和向量数据库出现并发展起来,为我们解决了大量的问题,但同时也引出了新的问题和挑战。 首先,我们需要明白什么是向量数据。在人工智能时代,传统的结构化数据(如文本…...
WebSocket协议
WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输 HTTP协议和WebSocket协议对比: HTTP是短连接WebSocket是长连接HT…...
Spring 事务是什么 ?事务的传播机制?
目录 1. 什么是事务? 2. Spring 事务三大基础设施 2.1 PlatformTransactionManager 平台事务管理器 2.2 TransactionDefinition 事务属性定义 2.3 TransactionStatus 事务状态 3. Transaction 注解 4. Spring 事务角色 5. Transaction 注解属性 5.1 事务的…...
黑马最新MybatisPlus教程!帮你实现快速开发
天下武功,唯快不破。在互联网世界中,更甚。产品更新要快、迭代要快、开发速度那必须得快。 在追求“快”的这条路上,大佬们都会使用上好的开发工具,来帮助自己实现高效开发,其中MybatisPlus便是提速的重要角色。 我们…...
你的Nmap脚本库该更新了!手把手教你管理、调试与编写自定义NSE脚本
从使用者到创造者:Nmap脚本引擎(NSE)深度管理指南 在渗透测试和安全评估领域,Nmap早已超越了简单的端口扫描工具定位,其强大的脚本引擎(NSE)使其成为网络安全专业人员的瑞士军刀。但大多数用户仅停留在基础脚本调用层面,未能充分释…...
AnimateDiff:3分钟让静态图像动起来的AI动画生成神器
AnimateDiff:3分钟让静态图像动起来的AI动画生成神器 【免费下载链接】animatediff 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/animatediff 你是否想过,只需几句话就能让静态图片活起来?是否在寻找将创意想法快速转化…...
保姆级教程:用ENVI+SNAP搞定哨兵1号雷达数据预处理(附水稻监测实战)
从零掌握哨兵1号雷达数据处理:ENVI与SNAP双软件协同实战指南 当第一次接触哨兵1号雷达数据时,许多研究者都会被其独特的成像机制和处理流程所困扰。与光学遥感不同,雷达数据需要经过一系列专业预处理才能用于分析。本文将带你系统掌握ENVI和…...
Nodejs后端服务接入Taotoken实现AI对话功能的具体步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Node.js 后端服务接入 Taotoken 实现 AI 对话功能的具体步骤 1. 准备工作:获取 API 密钥与模型 ID 在开始编写代码之前…...
大模型应用
RAG 入门项目:项目简介:RAG(检索增强生成)核心分为离线处理与在线处理两条主线:离线处理:持续向私有向量知识库补充私有知识文档,可纳入模型训练截止后的最新资料,为模型提供参考依据…...
068、PCIE标签(Tag)与事务ID:那些年我们追丢的TLP
068、PCIE标签(Tag)与事务ID:那些年我们追丢的TLP 从一次深夜调试说起 上个月帮同事看一个诡异的PCIE问题:DMA传输偶尔丢包,概率大概万分之三。逻辑分析仪抓到的TLP序列一切正常,但设备端就是偶尔收不到某个内存写请求。熬到凌晨三点,突然注意到一个细节——两个不同方…...
电源设计方案指南(含x86板卡专属,全场景适配)
电源设计方案指南(含x86板卡专属,全场景适配) 本指南为全场景电源设计提供完整落地路径,覆盖储能、工业、消费类、服务器、笔记本五大场景,整合x86板卡电源设计核心规范,从需求分析、拓扑选型、器件选型到场景适配、测试验证逐一拆解,嵌入DVFS、SVI3等专业术语并详解,…...
如何用Win11Debloat免费为Windows系统瘦身:终极优化指南
如何用Win11Debloat免费为Windows系统瘦身:终极优化指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …...
AntiMicroX手柄映射技术方案:解决PC游戏输入兼容性难题的终极方案
AntiMicroX手柄映射技术方案:解决PC游戏输入兼容性难题的终极方案 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcod…...
Audio Slicer:智能音频切片工具终极指南,告别手动剪辑烦恼
Audio Slicer:智能音频切片工具终极指南,告别手动剪辑烦恼 【免费下载链接】audio-slicer A simple GUI application that slices audio with silence detection 项目地址: https://gitcode.com/gh_mirrors/aud/audio-slicer 还在为繁琐的音频剪辑…...
