- 前端(HTML/CSS/JavaScript)hy029.cn
index.html
html
Welcome to My App
Fetch Data<script src="script.js"></script>
style.css
css
body {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
font-family: Arial, sans-serif;
}
#data {
margin-top: 20px;
}
script.js
javascript
document.getElementById(‘fetchData’).addEventListener(‘click’, function() {
fetch(‘/api/data’)
.then(response => response.json())
.then(data => {
document.getElementById(‘data’).innerHTML = JSON.stringify(data, null, 2);
})
.catch(error => console.error(‘Error:’, error));
});
2. 后端(Node.js/Express)
app.js
javascript
const express = require(‘express’);
const mongoose = require(‘mongoose’);
const bodyParser = require(‘body-parser’);
const app = express();
const PORT = 3000;
// 连接到MongoDB
mongoose.connect(‘mongodb://localhost:27017/myAppDB’, {
useNewUrlParser: true,
useUnifiedTopology: true
});
// 引入路由
const dataRoutes = require(‘./routes/dataRoutes’);
app.use(‘/api’, dataRoutes);
// 中间件
app.use(bodyParser.json());
// 监听端口
app.listen(PORT, () => {
console.log(Server is running on port ${PORT}
);
});
routes/dataRoutes.js
javascript
const express = require(‘express’);
const router = express.Router();
const DataModel = require(‘…/models/DataModel’); // 假设你有一个DataModel
router.get(‘/data’, async (req, res) => {
try {
const data = await DataModel.find();
res.json(data);
} catch (error) {
res.status(500).json({ message: error.message });
}
});
module.exports = router;
models/DataModel.js (MongoDB的模型)
javascript
const mongoose = require(‘mongoose’);
const dataSchema = new mongoose.Schema({
name: String,
value: Number
});
const DataModel = mongoose.model(‘Data’, dataSchema);
module.exports = DataModel;
注意
上述例子假设你已经有MongoDB运行在本地,并且监听默认端口27017。
你需要安装express, mongoose, body-parser等npm包。
示例中的/api/data路由只是一个简单的示例,用于从MongoDB中检索数据并返回给前端。
前端JavaScript代码中的fetch(‘/api/data’)会向你的后端发送一个GET请求,并期望返回JSON格式的数据。
你需要确保前端和后端代码都在同一台机器上运行,并且端口配置正确(在这个例子中是3000端口)。
这只是一个非常基本的示例,实际应用中你可能需要处理更多的细节,如安全性、错误处理、数据验证等。