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