Initial commit
This commit is contained in:
65
server.ts
Normal file
65
server.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
import express from "express";
|
||||
import { createServer as createViteServer } from "vite";
|
||||
import path from "path";
|
||||
|
||||
async function startServer() {
|
||||
const app = express();
|
||||
const PORT = 3000;
|
||||
|
||||
app.use(express.json());
|
||||
|
||||
// In-memory data store for the backend
|
||||
const dataStore = {
|
||||
projects: [
|
||||
{ id: 1, name: 'Autonomous_Nav_Cam_Left.mp4', frames: 1240, status: 'Ready', fps: 30, thumbnail: 'bg-zinc-800' },
|
||||
{ id: 2, name: 'Store_Checkout_Aisle_1.mkv', frames: 450, status: 'Processing', fps: 15, thumbnail: 'bg-zinc-800' },
|
||||
{ id: 3, name: 'Medical_Scans_Series_A', frames: 80, status: 'Ready', fps: '图像序列', thumbnail: 'bg-zinc-800' },
|
||||
{ id: 4, name: 'Drone_Survey_Forest.mp4', frames: 3200, status: 'Ready', fps: 60, thumbnail: 'bg-zinc-800' },
|
||||
],
|
||||
templates: [
|
||||
{ id: 1, name: 'Cityscapes_v2_Mapping', classes: 34, rules: 8 },
|
||||
{ id: 2, name: 'Medical_Cell_Segment', classes: 4, rules: 2 },
|
||||
{ id: 3, name: 'COCO_Panoptic_Base', classes: 133, rules: 12 },
|
||||
]
|
||||
};
|
||||
|
||||
// Auth endpoint
|
||||
app.post("/api/login", (req, res) => {
|
||||
const { username, password } = req.body;
|
||||
if (username === "admin" && password === "123456") {
|
||||
res.json({ token: "fake-jwt-token-for-admin" });
|
||||
} else {
|
||||
res.status(401).json({ error: "Invalid credentials" });
|
||||
}
|
||||
});
|
||||
|
||||
// Data endpoints
|
||||
app.get("/api/projects", (req, res) => {
|
||||
res.json(dataStore.projects);
|
||||
});
|
||||
|
||||
app.get("/api/templates", (req, res) => {
|
||||
res.json(dataStore.templates);
|
||||
});
|
||||
|
||||
// Vite middleware for development
|
||||
if (process.env.NODE_ENV !== "production") {
|
||||
const vite = await createViteServer({
|
||||
server: { middlewareMode: true },
|
||||
appType: "spa",
|
||||
});
|
||||
app.use(vite.middlewares);
|
||||
} else {
|
||||
const distPath = path.join(process.cwd(), 'dist');
|
||||
app.use(express.static(distPath));
|
||||
app.get('*', (req, res) => {
|
||||
res.sendFile(path.join(distPath, 'index.html'));
|
||||
});
|
||||
}
|
||||
|
||||
app.listen(PORT, "0.0.0.0", () => {
|
||||
console.log(`Server running on http://localhost:${PORT}`);
|
||||
});
|
||||
}
|
||||
|
||||
startServer();
|
||||
Reference in New Issue
Block a user