I was making one app with frontend react.js uses axios to api call and for backend i am using express and node with database mysql while making call to api url i am getting error for access denied error Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO) If this is not the case i will be getting axios network error Axios Network error i dont know which port to use if i use 3306 port it is already in use. Please take a look at code and suggest about optimization and a better way... thank you....
config.js will save the configuration of connecting to the database Configuration.js
const config = { db: { host: "localhost", user: "new_user", password: "password", database: "db", }, }; module.exports = config;
db.js will create the connection db.js
const mysql = require("mysql"); const config = require("./config"); var con = mysql.createPool(config); module.exports = con;
This is where express and application servers should be created index.js
const express = require("express"); var mysql = require("mysql"); const cors = require("cors"); const app = express(); app.use(express()); app.use(cors()); const Tables路线 = require("./路线/Tables路线"); //路线 app.use("/", Tables路线); app.listen(8000, () => { console.log("Running on port :8000"); });api routes called from the frontend route
const express = require("express"); const { postTableDes, alterTable, showTables, } = require("../控制器s/Tables"); const tablerouter = express.Router(); tablerouter.get("/", showTables); tablerouter.post("/", postTableDes); module.exports= tablerouter;where to show table behavior controller
const con = require("../Config/db"); //get tables const showTables = async (req, res) => { //try { var sql = `show tables`; const data = await con.query(sql, (err, res)=>{ if(err){ console.log(err); res.status(404).json({ error: "No show table" }); return; } console.log(res); res.status(202).json(data); }); module.exports = showTables;
Try changing
config.js
to (thecreatePool
call does not require an object withdb
properties):