我的环境是带有Express / Nodejs后端的Angular前端。
我的问题的一个示例是用户单击网页上的一个按钮,该按钮启动了长时间运行的SQL进程。它使用Angular服务连接到DB,该服务针对路由发出HTTP请求。该路由在Express端命中了一个执行SQL语句的帖子。如果站点上的另一个用户点击相同的路由,将杀死用户1s的查询。如何停止呢?
以下示例:
Angular服务
getBBB(id): Observable<[BBBResult]> {
const url = 'http://localhost:4200/'+'job_bbb';
const data = ({
id: id,
});
return this._http.post(url, data)
.pipe(
map((res) => {
console.log(res);
return <[BBBResult]> res;
})
);
}
Angular中的Routes / Index.js文件
router.post('/job_bbb', function (req, res) {
var id = req.body.id;
var sql = " CALL PROCEDURE DB.PROC(" + id + ");"
return database.read(sql)
.then((x) => {
console.log(x)
res.send(x);
})
});
答案 0 :(得分:0)
表达差异的不同呼叫不应打扰自己,因为您的路由必须是无状态的。
看一下您的数据库驱动程序提供商,并检查使用示例。