下面是一个简单的示例,演示了如何在Angular应用程序中使用Node.js向MariaDB发送POST请求。
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class DataService {
constructor(private http: HttpClient) {}
postData(data: any) {
return this.http.post('http://localhost:3000/api', data);
}
}
const express = require('express');
const bodyParser = require('body-parser');
const mariadb = require('mariadb');
const app = express();
const pool = mariadb.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb'
});
app.use(bodyParser.json());
app.post('/api', (req, res) => {
pool.getConnection()
.then(conn => {
conn.query('INSERT INTO users (name, email) VALUES (?, ?)', [req.body.name, req.body.email])
.then(() => {
conn.release();
res.send('Data stored successfully');
})
.catch(err => {
conn.release();
res.status(500).send('Error storing data');
});
})
.catch(err => {
res.status(500).send('Error connecting to database');
});
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
import { Component } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { DataService } from './data.service';
@Component({
selector: 'app-root',
template: `
`,
providers: [DataService]
})
export class AppComponent {
myForm: FormGroup;
constructor(private formBuilder: FormBuilder, private dataService: DataService) {
this.myForm = this.formBuilder.group({
name: '',
email: ''
});
}
onSubmit() {
this.dataService.postData(this.myForm.value).subscribe(
response => {
console.log(response);
},
error => {
console.log(error);
}
);
}
}
通过以上步骤,你可以实现Angular使用Node.js向MariaDB进行POST请求,并将数据存储到数据库中。请注意,以上示例仅供参考,实际应用中可能需要进行适当的修改和调整。