You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

261 lines
7.2 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//16.apiRouter.js
const express = require('express')
const bodyParser = require('body-parser');
const router = express.Router()
const fs = require("fs");
const mysql = require('mysql2');
const moment = require("moment");
const util = require('util');
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'Skyinno251,',
database: 'appserver',
multipleStatements: true, // 允许执行多条语句,(高并发方式)
connectionLimit: 10 // 连接池最大连接数
});
// 在这里挂载对应的路由
router.get('/get', (req, res) => {
// 通过 req.query 获取客户端发送到服务器的数据(查询字符串)
const query = req.query
run().then(r => {console.log("调用oracle")})
// 调用 res.send() 方法,向客户端响应处理的结果
res.send({
status: 0,// 0 表示处理成功1 表示处理失败
msg: 'GRT请求成功', // 状态的描述
data: query// 需要响应给客户端的数据
})
})
router.post('/addTimeNow', (req, res) => {
// 通过 req.body 获取请求体中包含的 url-encoded 格式的数据
const body = req.body
res.send({
status: 1,
msg: 'POST请求成功',
data: body
})
})
// 新增用户 POST 请求处理程序
router.post('/addUserNow', (req, res) => {
const date = new Date();
const formattedDate = moment(date).format('YYYY-MM-DD HH:mm:ss');
console.log(formattedDate);
const { name, age } = req.body; // 从请求体中获取数据
if (name == undefined||name == ''||name == null) {
res.status(500).json({ error: 'name not null' });
return
}
if (age == undefined||age == ''||age == null) {
res.status(500).json({ error: 'age not null' });
return
}
const values = [name, age, date];
const insertSql = `INSERT INTO user_now (name, age,create_time) VALUES (?, ?, ?)`;
pool.query(insertSql, values, (err, results) => {
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results,
});
});
});
router.delete('/delete', (req, res) => {
res.send({
status: 0,
msg: 'DELETE请求成功',
})
})
// 获取用户详情 3
router.get('/user/:username', (req, res) => {
const { username } = req.params;
if (username == undefined||username == ''||username == null) {
res.status(500).json({ error: 'username not null' });
return
}
const values =[username];
let query = 'SELECT * FROM user WHERE username = ?';
pool.query(query,values,(err, results) => {
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results?results[0]:{},
});
});
});
router.get('/user', (req, res) => {
const { username, name } = req.query;
//const values =[username, name];
let query = 'SELECT * FROM user';
// 构建查询条件
const params = [];
if (name !== undefined&&name !== ''&&name !== null) {
query += ' WHERE name = ?';
params.push(name);
}
if (username !== undefined&&username !== ''&&username !== null) {
query += params.length ? ' AND' : ' WHERE';
query += ' username = ?';
params.push(username);
}
// 查询数据库并返回数据
pool.query(query,params,(err, results) => {
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results,
});
});
});
router.put('/userPut', (req, res) => {
// console.log(req.body);
const { name, age ,id} = req.body; // 从请求体中获取数据
if (id == undefined||id == ''||id == null) {
res.status(500).json({ error: 'id not null' });
return
}
if (name == undefined||name == ''||name == null) {
res.status(500).json({ error: 'name not null' });
return
}
if (age == undefined||age == ''||age == null) {
res.status(500).json({ error: 'age not null' });
return
}
const values = [name, age, id];
// 准备 SQL 插入语句
const sql = "UPDATE user_now SET name = ?, age = ? WHERE id = ?";
pool.query(sql, values, (err, results) => {
// console.log(err,'err');
// console.log(results,'results');
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results,
});
});
});
// 删除用户数据 DELETE请求处理程序
router.delete('/userDel/:id', (req, res) => {
// const {id} = req.body; // 从请求体中获取数据
const id = req.params.id;
if (id == undefined||id == ''||id == null) {
res.status(500).json({ error: 'id not null' });
return
}
// console.log(id,'id');
const values = [id];
const sql = "DELETE FROM time_now WHERE id = ?";
pool.query(sql, values, (err, results) => {
// console.log(err,'err');
// console.log(results,'results');
if (err) {
console.error('Error querying database:', err);
res.status(500).json({ error: 'Internal server error' });
return;
}
res.json({
code:'200',
data:results,
});
});
});
router.get('/process_get', function (req, res) {
// 输出 JSON 格式
var response = {
"first_name":req.query.first_name,
"last_name":req.query.last_name
};
console.log(response);
res.end(JSON.stringify(response));
})
// 创建 application/x-www-form-urlencoded 编码解析
const urlencodedParser = bodyParser.urlencoded({ extended: false })
router.post('/process_post', urlencodedParser, function (req, res) {
// 输出 JSON 格式
var response = {
"first_name":req.body.first_name,
"last_name":req.body.last_name
};
console.log(response);
res.end(JSON.stringify(response));
})
router.post('/file_upload', function (req, res) {
console.log(req.files[0]); // 上传的文件信息
const des_file = "/Users/admin/tmp/" + req.files[0].originalname;
fs.readFile( req.files[0].path, function (err, data) {
fs.writeFile(des_file, data, function (err) {
if( err ){
console.log( err );
}else{
response = {
message:'File uploaded successfully',
filename:req.files[0].originalname
};
}
console.log( response );
res.end( JSON.stringify( response ) );
});
});
})
router.get('/getCookies', function(req, res) {
console.log("Cookies: " + util.inspect(req.cookies));
res.end( JSON.stringify( util.inspect(req.cookies) ) );
})
module.exports = router