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

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.

// 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");
// });