如何将号码从 Angular 发送到 node.js
How to send a number to node.js from Angular
我正在使用 Angular、Node 和 mySQL 进行全栈开发。我必须将用户在 HTML 上单击的列表的索引号发送到 node.js,然后我必须从 mySQL 中删除该索引行。但是,我收到一个不寻常的错误。这是我的代码:
HTML
<tbody *ngFor = "let db of dbData" >
<tr>
<td>{{+db.idoffice + +1}}</td>
<td>{{db.ProjectName}}</td>
<td>{{db.FiscalYear}}</td>
<td>{{db.TaskDescription}}</td>
<td>{{db.ConcernedDepartment}}</td>
<td>{{db.ActivityType}}</td>
<td>{{db.Quarter}}</td>
<td>{{db.kra}}</td>
<td>{{db.CurrentStatus}}</td>
<td>{{db.ResourceName}}</td>
<td>{{db.Notes}}</td>
<td><button class = "btn btn-success nc-icon nc-refresh-69" name="button"></button></td>
<td><button class = "btn btn-danger nc-icon nc-simple-delete" name="button" (click) =
"onDeletePosts(db.idoffice)"></button></td>
</tr>
</tbody>
Angular
private onDeletePosts(delData)
{
this.http.delete('http://localhost:3000/del', delData)
.subscribe(responseData => {
console.log(responseData);
});
}
Node.js
router.delete("/del", (req, res) => {
var del = req.body.delData;
console.log(del);
mysqlConnection.query("DELETE FROM office WHERE idOffice == ?", del , (err, results) => {
if(!err)
{
res.send(results);
}
else
{
console.log("Error occured while deleting" + err.message);
}
})
})
这是我遇到的错误:
undefined //somehow the data from angular to node isn't being received
Error occured while deletingER_PARSE_ERROR: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near '== ?' at line 1
它说查询语法有问题。
您使用的比较运算符是“==”。 MySQL中没有双等号,所以应该是“=”
Angular
private onDeletePosts(del_id)
{
this.http.delete(`http://localhost:3000/del/${del_id}`)
.subscribe(responseData => {
console.log(responseData);
});
}
node.js
router.delete("/del/:del", (req, res) => {
const { del } = req.params;
console.log(del);
mysqlConnection.query("DELETE FROM office WHERE idOffice == ?", del, (err, results) => {
if (!err) {
res.send(results);
}
else {
console.log("Error occured while deleting" + err.message);
}
})
})
Angular HttpClient 的 delete
方法在其参数中没有主体。相反,您可以将 ID 作为 URL 查询参数发送。
Angular
import { HttpClient, HttpParams } from '@angular/common/http';
private onDeletePosts (delData: any) {
const params = new HttpParams().set('id', delData);
this.http.delete('http://localhost:3000/del', { params }).subscribe({
next: responseData => { console.log(responseData); },
error: error => { console.log(error); }
});
}
Node.js
router.delete("/del", (req, res) => {
var id = req.query.id;
console.log(id);
mysqlConnection.query("DELETE FROM office WHERE idOffice == ?", id, (err, results) => {
if (!err) {
res.send(results);
} else {
console.log("Error occured while deleting" + err.message);
}
})
})
我正在使用 Angular、Node 和 mySQL 进行全栈开发。我必须将用户在 HTML 上单击的列表的索引号发送到 node.js,然后我必须从 mySQL 中删除该索引行。但是,我收到一个不寻常的错误。这是我的代码:
HTML
<tbody *ngFor = "let db of dbData" >
<tr>
<td>{{+db.idoffice + +1}}</td>
<td>{{db.ProjectName}}</td>
<td>{{db.FiscalYear}}</td>
<td>{{db.TaskDescription}}</td>
<td>{{db.ConcernedDepartment}}</td>
<td>{{db.ActivityType}}</td>
<td>{{db.Quarter}}</td>
<td>{{db.kra}}</td>
<td>{{db.CurrentStatus}}</td>
<td>{{db.ResourceName}}</td>
<td>{{db.Notes}}</td>
<td><button class = "btn btn-success nc-icon nc-refresh-69" name="button"></button></td>
<td><button class = "btn btn-danger nc-icon nc-simple-delete" name="button" (click) =
"onDeletePosts(db.idoffice)"></button></td>
</tr>
</tbody>
Angular
private onDeletePosts(delData)
{
this.http.delete('http://localhost:3000/del', delData)
.subscribe(responseData => {
console.log(responseData);
});
}
Node.js
router.delete("/del", (req, res) => {
var del = req.body.delData;
console.log(del);
mysqlConnection.query("DELETE FROM office WHERE idOffice == ?", del , (err, results) => {
if(!err)
{
res.send(results);
}
else
{
console.log("Error occured while deleting" + err.message);
}
})
})
这是我遇到的错误:
undefined //somehow the data from angular to node isn't being received
Error occured while deletingER_PARSE_ERROR: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near '== ?' at line 1
它说查询语法有问题。
您使用的比较运算符是“==”。 MySQL中没有双等号,所以应该是“=”
Angular
private onDeletePosts(del_id)
{
this.http.delete(`http://localhost:3000/del/${del_id}`)
.subscribe(responseData => {
console.log(responseData);
});
}
node.js
router.delete("/del/:del", (req, res) => {
const { del } = req.params;
console.log(del);
mysqlConnection.query("DELETE FROM office WHERE idOffice == ?", del, (err, results) => {
if (!err) {
res.send(results);
}
else {
console.log("Error occured while deleting" + err.message);
}
})
})
Angular HttpClient 的 delete
方法在其参数中没有主体。相反,您可以将 ID 作为 URL 查询参数发送。
Angular
import { HttpClient, HttpParams } from '@angular/common/http';
private onDeletePosts (delData: any) {
const params = new HttpParams().set('id', delData);
this.http.delete('http://localhost:3000/del', { params }).subscribe({
next: responseData => { console.log(responseData); },
error: error => { console.log(error); }
});
}
Node.js
router.delete("/del", (req, res) => {
var id = req.query.id;
console.log(id);
mysqlConnection.query("DELETE FROM office WHERE idOffice == ?", id, (err, results) => {
if (!err) {
res.send(results);
} else {
console.log("Error occured while deleting" + err.message);
}
})
})