Как связать веб-приложение с базой данных MySQL Azure?

#mysql #reactjs #azure #fetch-api #azure-mysql-database

#mysql #reactjs #azure #fetch-api #azure-mysql-database

Вопрос:

РЕДАКТИРОВАТЬ: я изменил используемый порт, до 8081, но по-прежнему возникает проблема с ошибкой 405 в моем index.js. Организация выглядит следующим образом

 ├── ...
├── site
│   ├── server
│   │   ├── index.js
│   │   ├── ...
│   ├── wwwroot
│   │   ├── index.html
│   │   ├── .htaccess
│   │   ├── manifest.json
│   │   ├── web.config
│   │   ├── ...
  

Я впервые использовал MS Azure. Я выполнил проект на React.js с помощью базы данных MySQL. Теперь я отправил свою сборку веб-приложения в MS Azure, которая хорошо работала.

Но в этом приложении я использую запрос на выборку, который я не знаю, как настроить для MS Azure с авторизациями. Я попытался выполнить выборку по XX.XX.XXXX: 443 / точка.

Далее у меня ошибка 405. Я попытался поместить файл .htaccess: Header set Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD, но это ничего не изменило, метод post по-прежнему недоступен.

Я действительно надеюсь, что кто-нибудь найдет решение, спасибо.

Вот index.js важный код:

 const version="1.0.0"

var app=require('express')();
var http=require('http').Server(app);
var mysql=require('mysql');
var bodyParser=require('body-parser');
var jwt = require('jsonwebtoken');
var cookieParser = require('cookie-parser');
var fs=require("fs");

app.use(bodyParser.json({limit:'50mb'}));
app.use(bodyParser.urlencoded({limit:'50mb',extended:true}));
app.use(cookieParser());

const CREATE_TABLE_USER = fs.readFileSync("src/sql_script/create_table_user.sql").toString();
const ...

var con=mysql.createConnection({
    host:"host",
    user:"user",
    password:"password",
    database:"database",
});

con.connect(function(err){if(err){console.log(err);}});

con.query(CREATE_TABLE_USER,function(err,result){if(err){console.log(err);}})
con.query...

app.use(function(req,res,next){
    res.header('Access-Control-Allow-Methods: GET,POST,PATCH,PUT,DELETE,OPTIONS');
    res.header('Access-Control-Allow-Headers: Origin,X-Requested-With,Content-Type,Accept,X-Auth-Token');
    checkValidToken(req,res,next);
});

app.post('/dot',function(req,res){
    if(req.body.action === "login"){login(req, res);}
    ...
});

http.listen(443,function(){console.log('app listening on port 443!');})
  

Вот функция извлечения приложения:

 return fetch("XX:443/dot",{
    method:"POST",
    credentials:'same-origin',
    body:JSON.stringify(info),
    headers:{'Content-Type':'application/json'}
});
  

Комментарии:

1. Как вы выполняли развертывание? Если это веб-приложение, вы не можете прослушивать 8081 (открыты только 80 и 443); вам придется развернуть другим способом.

2. Я создал свое приложение react и разместил созданное веб-приложение на панели ms azure с уже созданным файлом хостинга, и оно отлично сработало. Итак, по вашему мнению, это сработало бы, если бы я использовал только 80 или 443 вместо 8081? Я пробую это прямо сейчас и вернусь, когда это будет сделано (плюс я уже создал правила доступа для 80 и 443 :))