node.js - 使用 Axios 在 Sequelize 上更新请求 (PUT) 超时

标签 node.js json reactjs axios sequelize.js

我有这个 Axios 函数,它使用 Sequelize 和 MariaDB 在 Express 上调用 API。

 export async function updateUser(values) {
        const TOKEN = 'Bearer ' + getToken();
    let axiosConfig = {
      headers: {
        'Content-Type': 'application/json;charset=UTF-8',
        "Access-Control-Allow-Origin": "*",
        'Authorization': TOKEN
}
};

 await axios.put('https://myapi.com/users', values, axiosConfig)
    .then((res) => {
      if (res.status === 200) {
       console.log(res.data)
      } else {
        const error = new Error(res.error);
        throw error;
      }     

})
.catch((err) => {
  console.log("AXIOS ERROR: ", err);
})
  }

在后端服务器上,我们有这个:
 var express = require('express');
    const User = require('./model/User');
    var cookieParser = require('cookie-parser');
    const UserController = require('./components/userController');
    const verifyToken = require("./middle/verifyToken");
    var bodyParser = require('body-parser')
    var cors = require('cors');




    var app = express();
    app.use(cors());
    app.use(express.json());
    app.use(bodyParser.json())
    app.use(cookieParser());

    //Ruta inicial (Backend)
    app.get('/', (req, res) => {
      res.sendFile('index.html');
    });

    app.use((req, res, next) => {
      res.header('Access-Control-Allow-Origin', '*');
      res.header('Access-Control-Allow-Headers', 'Authorization, X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Request-Method');
      res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
      res.header('Allow', 'GET, POST, OPTIONS, PUT, DELETE');
      next();
    });

    app.listen(4000, '0.0.0.0');

app.put('/actualitzar/',verifyToken,Accidents_basicController.update);


app.put('/users/actualitzar',UserController.update);
    app.get('/users',verifyToken,UserController.list);

我在两个 sequelize Controller 上复制了相同的请求结构,一个 PUT 请求是 200 OK,另一个在每次调用时超时。这是更新请求的 Sequelize Controller 。
controllers.update = async (req, res) => {

  const data = await User.update({
    username: req.body.username,
    password: bcrypt.hashSync(req.body.password, *),


  },{
    where: { id: req.body.id}
  })


  .then( function (data){
    return data;
  })
  .catch(error => {
    return error;
  })

  res.json({ success:true, data: data, message: "Updated successful"});

}

有人看到问题了吗?

最佳答案

好的,我找到了解决方案。发送到后端的请求没有更改密码,并且返回了从 bcrypt 到 crypt 空字符串的尝试。如果 req.body.password 未定义,我通过处理来解决它。

干杯!

关于node.js - 使用 Axios 在 Sequelize 上更新请求 (PUT) 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61129825/

相关文章:

node.js - Node 套接字在 Twitter 流 filter.json 上挂起

php - Json 变量值丢失

c# - Json.Net 和 ActionResult

javascript - 有条件地使用三元运算符应用类

javascript - 链接转到最后滚动位置而不是 anchor

node.js - 是否可以验证和签署 Node.js "native"中的数据(不使用对 OpenSSL 的外部调用)?

javascript - 如何检测 Node.js 中的键序列以执行某些操作

node.js - nodejs中使用express和passport和mongodb的简单登录页面

javascript - 如何将 AJAX JSON 映射到标签和值?

reactjs - 在 Material UI 中使用带有样式 API 的多个 CSS 规则名称