First commit for api
This commit is contained in:
commit
cffab8977e
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/node_modules
|
||||
/test
|
||||
13
config.js
Normal file
13
config.js
Normal file
@ -0,0 +1,13 @@
|
||||
// config.js
|
||||
|
||||
const dbConfig = {
|
||||
mysqldb: {
|
||||
host: '192.168.0.170',
|
||||
port: 3306,
|
||||
database: 'sunnymh_mysql',
|
||||
user: 'sunnymh_mysql',
|
||||
password: 'hengserver'
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = dbConfig;
|
||||
13
db.js
Normal file
13
db.js
Normal file
@ -0,0 +1,13 @@
|
||||
const config = require('./config');
|
||||
|
||||
class DB {
|
||||
constructor() {
|
||||
this.config = null;
|
||||
}
|
||||
|
||||
loadConfig() {
|
||||
this.config = config;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = DB;
|
||||
45
db_api.jsx
Normal file
45
db_api.jsx
Normal file
@ -0,0 +1,45 @@
|
||||
const express = require('express');
|
||||
const MySQLDB = require('./mysqldb');
|
||||
|
||||
const app = express();
|
||||
const port = 4000;
|
||||
|
||||
app.use(express.json()); // Middleware to parse JSON
|
||||
|
||||
// Initialize MySQL database connection
|
||||
const mySQLDB = new MySQLDB();
|
||||
|
||||
async function initializeDatabases() {
|
||||
try {
|
||||
await mySQLDB.createConnection();
|
||||
} catch (error) {
|
||||
console.error('Failed to initialize databases:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
app.get('/Pic', async (req, res) => {
|
||||
const mangaId = req.params.id;
|
||||
|
||||
try {
|
||||
const sqlQuery = `SELECT * FROM manga_table WHERE manga_id = ${mySQLDB.connection.escape(mangaId)}`;
|
||||
const mySQLResults = await mySQLDB.query(sqlQuery);
|
||||
|
||||
res.json({ mySQLResults });
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.post('/insert', async (req, res) => {
|
||||
const { mangaId, mangaName } = req.body;
|
||||
console.log(mangaId, mangaName);
|
||||
});
|
||||
|
||||
// Start server after initializing databases
|
||||
initializeDatabases().then(() => {
|
||||
app.listen(port, () => {
|
||||
console.log(`API server listening at http://localhost:${port}`);
|
||||
});
|
||||
});
|
||||
|
||||
49
mysqldb.js
Normal file
49
mysqldb.js
Normal file
@ -0,0 +1,49 @@
|
||||
const DB = require("./db");
|
||||
const mysql = require('mysql2');
|
||||
|
||||
class MySQLDB extends DB {
|
||||
constructor() {
|
||||
super();
|
||||
this.connection = null;
|
||||
}
|
||||
|
||||
async createConnection() {
|
||||
this.loadConfig();
|
||||
const { mysqldb } = this.config;
|
||||
this.connection = mysql.createConnection({
|
||||
host: mysqldb.host,
|
||||
port: mysqldb.port,
|
||||
user: mysqldb.user,
|
||||
password: mysqldb.password,
|
||||
database: mysqldb.database,
|
||||
connectTimeout: 0 // disable timeout
|
||||
});
|
||||
await this.connection.connect();
|
||||
}
|
||||
|
||||
async closeConnection() {
|
||||
if (this.connection) {
|
||||
await this.connection.end();
|
||||
this.connection = null;
|
||||
}
|
||||
}
|
||||
|
||||
async query(query) {
|
||||
if (!this.connection) {
|
||||
throw new Error('Database not connected');
|
||||
}
|
||||
const results = await new Promise((resolve, reject) => {
|
||||
this.connection.query(query, (err, rows) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(rows);
|
||||
}
|
||||
});
|
||||
});
|
||||
return results;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = MySQLDB;
|
||||
|
||||
1103
package-lock.json
generated
Normal file
1103
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
17
package.json
Normal file
17
package.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "sunnymh-db",
|
||||
"version": "1.0.0",
|
||||
"main": "db_api.jsx",
|
||||
"scripts": {
|
||||
"start": "node db_api.jsx",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"description": "",
|
||||
"dependencies": {
|
||||
"express": "^4.21.2",
|
||||
"mongodb": "^6.15.0",
|
||||
"mysql2": "^3.14.0"
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user