【问题标题】:Data not getting change in node js节点js中的数据没有变化
【发布时间】:2019-12-07 10:10:39
【问题描述】:

我正在使用 Angular、Node 和 MySQL。我有一个简单的 crud 应用程序,我在其中添加、更新一些数据。每当我添加/更新任何数据时,我都希望它能够反映列表网格中的变化。

我正在使用弹出窗口进行添加/更新。因此,在添加或更新后,我调用了我的通用函数,它为我提供了数据列表,但我得到了响应 304,并且更改未显示在网格中。因此,为了克服 304,我在 Node.js 中使用了app.disable('etag'),这给了我状态 200。但仍然没有显示更改,但是当我手动刷新页面时,我可以看到更改。

此外,当我在执行操作后检查网络中的数据时,它也会保存旧值。

Node.js

app.post("/addcity", function(req, res) {
    d = req.body;
    var con = mysql.createConnection(connectionString);
    con.connect(function(err) {
        if (err)
            throw err;
        var sql = "INSERT INTO tbl_city(city_name,state_id)  VALUES('" + d.city_name + "'," + d.state_id + ")";
        console.log(sql);
        con.query(sql, function(err, result) {
            if (err)
                throw err;
            res.send(result);
        })
    })
})

角度代码

PostData(addNewForm: NgForm) {
    var object = {
        "city_name": addNewForm.value.city_name,
        "state_id": addNewForm.value.state_id
    }
    this.service.addCity(object).subscribe();
    this.modalRef.hide();
    this.getAllCities(); // this still gives old values even new City is added in database
}

更新

getCities() : Observable<any[]>{
        var details = this.http.get(`${this.apiUrl}/cities`);
        return forkJoin([details]);
    }

【问题讨论】:

  • 你能不能显示getAllCities()函数,这个问题可能是因为你得到结果后没有访问服务器
  • @TheLawliet94 更新了我的问题 getAllCities()。这是命中 api,它为我提供了我可以在网络选项卡中看到但具有旧值的城市列表。但是当我刷新页面时,它也给了我最新添加的城市
  • 您可以尝试将您的代码更新为 PostData(addNewForm:NgForm) { var object = { "city_name":addNewForm.value.city_name, "state_id":addNewForm.value.state_id } this.service。 addCity(object).subscribe((result) => { this.modalRef.hide(); this.getAllCities(); }, (err) => { }); }
  • 检查是否有效

标签: mysql node.js angular


【解决方案1】:

您正在异步调用这两个请求,这就是为什么将城市添加到数据库中的原因。 this.getAllCities() 获取老城市列表 试试这样。

 PostData(addNewForm: NgForm) {
        var object = {
            "city_name": addNewForm.value.city_name,
            "state_id": addNewForm.value.state_id
        }
        this.service.addCity(object).subscribe(
          (data)=> {
                this.modalRef.hide();
                this.getAllCities();
            }
        ); 
    }

【讨论】:

    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多