MySQL ERRNO 1062 的解决方法

最近在用node写接口,发送请求后给数据库插入数据和查询数据显示在页面中, 发现get请求查询数据的操作可以实现, 而发送post请求向数据库插入数据无法实现,返回的errno为1062,

先贴数据库配置

const mysql = require('mysql');
 const pool  = mysql.createPool({
  connectionLimit : 10, // 池子里可以放多少桥
  host            : 'localhost',
  user            : 'root',
  password        : '',
  database        : 'test_2'
})
// 调用test,test内部调用pool.query
function test(sql,arr,callback){
  // arguments
  // apply,call
  // query方法调用去查数据库
    pool.query.apply(pool,arguments)

    // pool.query(sql,arr, callback)
}


test('select* from salary where id = 33',function(err,result){console.log(111)})
//向外提供方法
module.exports = {
  test
}

再贴接口配置

const bodyParser = require('body-parser')

// 引入封装的db.js(数据库的操作)
const db = require('./db.js')
const express = require('express')

const app  = express()

// 自动根据用户请求的地址从www目录读取对应的文件,然后响应给浏览器
app.use(express.static('./www'))

// application/x-www-form-urlencoded
app.use(bodyParser.urlencoded()) // form-data 

// application/json
app.use(bodyParser.json()) // json  // json {}

//1. 接收请求,保存用户的聊天信息
// arg:  msg聊天内容, nickname,昵称
app.post('/addinfo',(req, res) => {
    // body-parser会把post请求的参数放到req.body
    // 把前端的参数保存到数据库.
    db.test('insert chats(nickname,msg) values(?,?)',[req.body.nickname,req.body.msg], (err, results) => {
      console.log("sendsuccessful");
        if(err){
          res.send(err)
          return
        }else{
          res.send('ok')
        }
    })
    
})

// 2.接收请求,到数据库读取聊天记录,并响应给用户
app.get('/getlist',(req, res)=>{

  // 到数据库读取数据,并响应给前端
  db.test('select * from chats',(err, result)=>{
    if(err){
      res.send(err)
      return;
    }
    res.send(result)
  })
})

app.listen(8000)

解决方法

我发现,原因在于在数据库里面建立表的时候,id作为主键没有设置自动递增,数据没法更新。
重新建表后,id设置为自动递增,问题解决。

转载于:https://my.oschina.net/LinearLawX/blog/869550

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值