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

146 lines
4.7 KiB

// var express = require('express')//加载express模块
// var path = require('path')//路径模块
// var app = express()//框架的实例化
// app.use(express.static(path.join(__dirname,"www")))//设置用户访问文件 默认把index.html文件返回用户
// app.listen(3000,function(err){
// if(err)throw err
// console.log("express正常 服务器地址http://localhost:3000")
// })
// var express = require('express');
// var path = require('path');
// var axios = require('axios'); // 引入axios库 与python交互
// const bodyParser = require('body-parser');
//const cors = require('cors');
import express from 'express'
import path from 'path'
import axios from 'axios'
import bodyParser from 'body-parser'
import cors from 'cors'
import { fileURLToPath } from 'url';
// 获取当前文件的绝对路径
const __filename = fileURLToPath(import.meta.url);
// 获取当前文件的目录名
const __dirname = path.dirname(__filename);
var app = express();
// 允许所有来源跨域
app.use(cors());
// 其他中间件和路由
app.get('/', (req, res) => {
res.send('Hello from Express!');
});
app.use(express.static(path.join(__dirname, "www"))); //设置用户访问文件 默认把index.html文件返回用户
// 使用 body-parser 解析 JSON 请求体
app.use(bodyParser.json());
// 调用 Python 算法 API 获取随机学生
app.get('/get_random_student', async (req, res) => {
try {
// 通过 axios 发送请求给 Python 后端
const response = await axios.get('http://localhost:5000/get_random_student');
res.json(response.data); // 返回 Python API 返回的学生数据
} catch (error) {
console.error('Error calling Python API', error);
res.status(500).json({ error: 'Failed to get random student' });
}
});
// 调用 Python 服务来更新出勤积分
app.post('/update_attendance_score', async (req, res) => {
const { student_id } = req.body;
try {
// 通过 axios POST 请求调用 Python 更新积分的 API
const response = await axios.post('http://localhost:5000/update_attendance_score', { student_id });
res.json(response.data); // 返回 Python API 的结果
} catch (error) {
console.error('Error updating attendance score', error);
res.status(500).json({ error: 'Failed to update attendance score' });
}
});
// 调用 Python 服务来更新回答问题的积分
app.post('/update_answer_score', async (req, res) => {
const { student_id, repeated_correctly, answer_score } = req.body;
try {
// 通过 axios POST 请求调用 Python 更新回答问题积分的 API
const response = await axios.post('http://localhost:5000/update_answer_score', {
student_id,
repeated_correctly,
answer_score
});
res.json(response.data); // 返回 Python API 的结果
} catch (error) {
console.error('Error updating answer score', error);
res.status(500).json({ error: 'Failed to update answer score' });
}
});
// 启动 Express 服务器
app.listen(3000, '0.0.0.0', function(err){
if(err) throw err;
console.log("Express 正常运行服务器地址http://10.133.7.205:3000");
});
// var express = require('express');
// var path = require('path');
// var axios = require('axios'); // 引入 axios 库
// var app = express();
// const cors = require('cors');
// // 允许所有来源跨域
// app.use(cors());
// 其他中间件和路由
// app.get('/', (req, res) => {
// res.send('Hello from Express!');
// });
// app.use(express.static(path.join(__dirname, "www")));
// app.use(express.json()); // 解析 JSON 请求体
// // 前端请求点名学生调用Flask API
// app.get('/api/get_random_student', async function(req, res) {
// try {
// // 调用Python Flask API
// const response = await axios.get('http://localhost:5000/get_random_student');
// res.json(response.data); // 返回Flask API的响应给前端
// } catch (error) {
// console.error(error);
// res.status(500).send('调用Python API失败');
// }
// });
// // 前端请求更新积分调用Flask API
// app.post('/api/update_attendance_score_route', async function(req, res) {
// try {
// // 将请求体转发给Flask API
// const response = await axios.post('http://localhost:5000/update_attendance_score_route', req.body);
// res.json(response.data); // 返回Flask API的响应给前端
// } catch (error) {
// console.error(error);
// res.status(500).send('调用Python API失败');
// }
// });
// app.listen(3000, function(err){
// if(err) throw err;
// console.log("Express 正常运行服务器地址http://localhost:3000");
// });