通过http请求mysql插入表后缺少记录

时间:2019-11-24 00:57:16

标签: javascript mysql reactjs fetch

我正在尝试将数据插入aws上的数据库,即mysql db。我能够将数据发送到端点,它显示了一点,但随后消失了。我通过反应发送。下面是我正在使用的代码:

addRecord =() => {
      fetch(`my_ip:4000/data/add?time=${moment().format("YYYY-MM-DD HH:mm:00")}&lat=${this.state.lat}&lon=${this.state.lon}&floor=${this.state.floor}`)
      .catch(err => console.error(err))
    }

API端点位于以下节点中:

//add a record 
app.get('/data/add', (req, res) => {
    const { time, lat, lon, floor } = req.query;
    const INSERT_RECORDS = `INSERT INTO table_x(time, lat, lon, floor) VALUES('${time}','${lat}','${lon}',${floor})`;
    connection.query(INSERT_RECORDS, (err, results) => {
        if(err) {
            return res.send(err)
        } else {
            return res.send('successfully added') 
        }
    });
});

记录在表中显示大约5秒钟,然后消失。我相信sql中的“提交”正在发生某些事情,但不知道如何解决此问题。

尝试

我试图切换为发布,因为我在其他一些帖子中看到了这一点,例如:

Adding data to mysql database with node.js

但仍然无法正常工作。如果我使用app.get()可以正常工作,但是数据仍然无法保存。它出现在我的数据库中大约十秒钟,然后消失,就像删除了一样:

const SELECT_ALL_PRODUCTS_QUERY = 'SELECT * FROM my_table';
 const express = require('express');
const cors = require('cors');
const mysql = require('mysql');

const app = express();

connection.connect(err => {
    if(err) {
        return err;
    } else {
        console.log('success')
    }
});


app.use(cors());

//create api directions
app.get('/', (req, res) => {
    res.send('go to /products to see products')
}); 

app.listen(4000, () => {
    console.log('Server listening on port 4000')
});


//call query to select all
app.get('/products', (req, res) => {
    connection.query(SELECT_ALL_PRODUCTS_QUERY, (err, results) => {
        if(err) {
            return res.send(err)
        } else {
            console.log(results)
            return res.json({
                data: results
            })
        }
    })
})




app.post('/add', (req, res) => {
        console.log(req.query);
        var my_data = {
            time: req.query.time,
            lat: req.query.lat,
            lon: req.query.lon,
            floor: req.query.floor
           }
           // now the createStudent is an object you can use in your database insert logic.
           connection.query('INSERT INTO my_table SET ?', my_data, function (err, resp) {
             if (err) throw err;
             // if there are no errors send an OK message.
             res.send('Saved successfully');
           });
    }); 

当我尝试通过以下方式添加记录时:

http://my_ip:4000/add?time=2019-10-01%2009:00:00&lat=43.07&lon=-73.08&floor=1

我得到了错误:

无法获取/添加

再一次,如果我使用 app.get() ,它会起作用,但不会持久

通过addRecord函数插入数据时,我在后端终端上看到以下控制台日志:

Server listening on port 4000
success
{ time: '2019-11-24 17:16:00',
  lat: '43',
  lon: '-73.1',
  floor: '0' }

因此似乎已接收到数据。但我看不到“成功保存”

0 个答案:

没有答案