angular mysql_mysql – 使用Angular进行数据库访问

1-是否可以在角度框架中访问MySQL数据库?

问题不是角度特定但是是可能的,因为MySQL 5.7可以通过HTTP插入,更新和删除MySQL中的记录.像这样的东西

http://127.0.0.1:8080/sql/myhttp/SELECT name_first,name_last FROM names

refer here

Hence you can interact with MySQL directly with any HTTP client with

out any middle-ware.

通过HTTP客户端我的意思是Curl,Wget或任何语言的任何Http库/ API(ajax,请求,获取,axios …用于JavaScript /节点)

2 – 这会像其他JavaScript一样不安全吗?

同样不是JavaScript特定的,但是,从客户端直接与数据库交互是不安全的(不推荐).

为什么?

您需要从客户端处理SQL注入等数据库安全问题(在这种情况下为角度).这样做非常不方便.

I do recommend to always have database access middle-ware (php,node,python …) than interacting from client side

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些指导和提示,但是我需要更多的信息来确保我的回答符合您的需求。 首先,您需要了解这些技术的基本概念和用法。以下是一些关键点: - Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,可用于构建高性能的网络应用程序。 - Express 是 Node.js 中最流行的 web 框架之一,它提供了一组强大的功能和工具,使得构建 web 应用程序变得更加容易。 - JWT(JSON Web Token)是一种基于 JSON 的开放标准,用于在网络应用程序之间安全地传输信息。JWT 包含加密的信息,可以被验证和信任。 - Angular 是一个流行的前端框架,用于构建单页应用程序。它使用 TypeScript 编写,并提供了一组强大的工具和组件来简化开发。 - MySQL 是一种流行的关系型数据库,常用于存储应用程序的数据。 现在,让我们来看看如何将这些技术组合在一起构建一个应用程序。 首先,您需要创建一个 Node.js 项目,并使用 Express 框架创建一个基本的 web 服务器。您可以使用以下命令创建一个新项目: ``` mkdir myapp cd myapp npm init ``` 然后,您可以使用以下命令安装 Express: ``` npm install express ``` 接下来,您需要创建一个 Express 应用程序,并配置路由和中间件。您可以使用以下代码创建一个基本的 Express 应用程序: ```javascript const express = require('express') const app = express() app.use(express.json()) app.get('/', (req, res) => { res.send('Hello, world!') }) app.listen(3000, () => { console.log('Server started on port 3000') }) ``` 这个应用程序使用 `express.json()` 中间件来解析请求体中的 JSON 数据,并定义了一个基本的路由,该路由将在根路径上返回一个简单的“Hello, world!”消息。 接下来,您需要配置身份验证和授权。您可以使用 JWT 来实现身份验证和授权。您可以使用以下代码生成和验证 JWT: ```javascript const jwt = require('jsonwebtoken') const secret = 'mysecret' function generateToken(user) { const payload = { id: user.id, name: user.name } const options = { expiresIn: '1h' } return jwt.sign(payload, secret, options) } function verifyToken(token) { return jwt.verify(token, secret) } ``` 这个代码定义了两个函数,一个用于生成 JWT,另一个用于验证 JWT。 接下来,您需要创建一个 MySQL 数据库,并使用 Node.js 的 mysql 模块连接到它。您可以使用以下代码连接到 MySQL 数据库: ```javascript const mysql = require('mysql') const connection = mysql.createConnection({ host: 'localhost', user: 'username', password: 'password', database: 'myapp' }) connection.connect((err) => { if (err) { console.error('Error connecting to database', err) } else { console.log('Connected to database') } }) ``` 这个代码使用 `mysql.createConnection()` 函数创建一个 MySQL 连接,并使用 `connection.connect()` 函数连接到数据库。 最后,您需要创建一个 Angular 应用程序,并使用它来调用您的 Express API。您可以使用以下代码创建一个基本的 Angular 应用程序: ``` ng new myapp cd myapp ng serve ``` 这个应用程序使用 Angular CLI 创建一个基本的 Angular 应用程序,并使用 `ng serve` 命令启动开发服务器。 接下来,您需要添加一个服务来调用您的 Express API。您可以使用以下代码创建一个基本的 Angular 服务: ```typescript import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Injectable({ providedIn: 'root' }) export class ApiService { private baseUrl = 'http://localhost:3000'; constructor(private http: HttpClient) { } public getHello() { return this.http.get(`${this.baseUrl}/hello`); } public login(credentials) { return this.http.post(`${this.baseUrl}/login`, credentials); } } ``` 这个代码定义了一个名为 `ApiService` 的 Angular 服务,它使用 `HttpClient` 模块来调用 Express API 中的端点。 现在,您可以在 Angular 组件中使用这个服务来调用 Express API。例如,以下代码演示了如何在 Angular 组件中调用 `ApiService.getHello()`: ```typescript import { Component } from '@angular/core'; import { ApiService } from './api.service'; @Component({ selector: 'app-root', template: ` <h1>{{ message }}</h1> ` }) export class AppComponent { public message: string; constructor(private apiService: ApiService) { } ngOnInit() { this.apiService.getHello().subscribe((response: any) => { this.message = response.message; }); } } ``` 这个代码定义了一个名为 `AppComponent` 的 Angular 组件,它使用 `ApiService` 来调用 Express API 中的 `/hello` 端点,并将响应的消息显示在页面上。 这只是一个简单的示例,您可以根据自己的需求进行更改和扩展。希望这可以帮助您开始构建您的应用程序!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值