app.js文件过大怎么办?如何优化其大小?
以下是一个详细的app.js
示例,它展示了如何设置一个基本的 Express 应用程序,此示例包括中间件的使用、路由的定义以及错误处理机制。
// 引入所需的模块
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const cors = require('cors');
const helmet = require('helmet');
const morgan = require('morgan');
const fs = require('fs');
const path = require('path');
// 创建 Express 应用
const app = express();
// 连接 MongoDB 数据库
mongoose.connect('mongodb://localhost:27017/mydatabase', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
}).then(() => console.log('MongoDB connected'))
.catch(err => console.log(err));
// 使用中间件
app.use(cors()); // 允许跨域请求
app.use(helmet()); // 增强 HTTP 头部安全性
app.use(morgan('combined')); // 日志记录
app.use(bodyParser.json()); // 解析 JSON 请求体
app.use(express.static(path.join(__dirname, 'public'))); // 静态文件托管
// 定义简单的 API 路由
app.get('/api/health', (req, res) => {
res.status(200).send({ message: 'Server is up and running!' });
});
app.post('/api/data', (req, res) => {
const data = req.body;
// 假设我们有一个模型叫 DataModel
const newData = new DataModel(data);
newData.save().then(() => {
res.status(201).send(newData);
}).catch(err => {
res.status(400).send({ error: 'Error saving data' });
});
});
// 错误处理中间件
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send({ error: 'Something went wrong!' });
});
// 启动服务器
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(Server is running on port ${port}
);
});
代码解释:
1、引入模块:引入了 Express、Mongoose(用于 MongoDB)、body-parser、cors、helmet、morgan 等模块。
2、创建 Express 应用:通过express()
创建一个 Express 应用实例。
3、连接 MongoDB:使用 Mongoose 连接到本地的 MongoDB 数据库。
4、使用中间件:
cors()
:允许所有来源的跨域请求。
helmet()
:增强 HTTP 头部的安全性。
morgan('combined')
:使用 combined 格式记录日志。
bodyParser.json()
:解析 JSON 格式的请求体。
express.static()
:提供静态文件服务,HTML、CSS、JavaScript 等文件。
5、定义 API 路由:
GET /api/health
:一个简单的健康检查端点,返回服务器状态。
POST /api/data
:接收 JSON 数据并保存到数据库中。
6、错误处理中间件:捕获所有未处理的错误并返回 500 状态码和错误信息。
7、启动服务器:监听指定的端口(默认为 3000),并在控制台输出服务器运行状态。
这个示例展示了一个基本的 Express 应用程序结构,可以根据需要进行扩展和定制。
各位小伙伴们,我刚刚为大家分享了有关“app.js 大”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
-- 展开阅读全文 --
暂无评论,2人围观