简介:
express.js是一个流行的框架,用于在node.js中构建Web应用程序。它为开发服务器端应用程序提供了一种简约且灵活的方法。
但是,建立一个具有MongoDB集成的Express.js项目可能是一项繁琐且耗时的任务。那就是Create Mongo Express进行救援的地方!在本文中,我们将探讨如何创建Mongo Express可以简化您的Express.js开发工作流程并提高您的生产力。
Create Mongo Express是一种简单而强大的 cli 工具,可自动使用MongoDB连接的Express.js应用程序设置。使用此工具,您可以快速生成一个完全配置的express.js项目,并配有基于file
的预配置路由,并与mongodb无缝集成。
安装
要安装软件包,请确保您在计算机上安装了Node.js和NPM。然后,运行以下命令:
npx create-mongo-express project-name
接下来,您将被要求提供MongoDB Uri。
Enter the MongoDB URI:
确保您的mongoDB Uri采用以下格式:
mongodb+srv://mongoDbUser:mongoDbUserPass@cluster0.s938843o0.mongodb.net/databaseName?retryWrites=true&w=majority
运行服务器
设置完成后,导航到项目文件夹:
cd project-name
接下来,通过运行以下命令来启动服务器:
npm run dev
您的服务器默认情况下将在端口3500上运行。
如果您想更改端口,则可以修改位于根文件夹中的server.js
文件。
创建新路线
要在API文件夹中创建新路由,请按照以下步骤:
在项目文件夹中,找到 api 文件夹。这是您可以添加自定义路线的地方。
创建一个带有描述性名称的新文件。例如,如果要创建用于管理产品的路由,则可以在 api 文件夹中创建一个名为products.js
的文件。
打开新创建的文件,并添加必要的代码以定义您的路由。这是一个例子:
const express = require('express');
const router = express.Router();
const Customer = require('../model/Customer');
// GET /api/customers
router.get('/', (req, res) => {
res.send('This is the /customers route');
});
// GET /api/customers/:id
router.get('/:id', (req, res) => {
console.log(req.params.id);
res.send(`This is the /customers/${req.params.id} route`);
});
// POST /api/customers
router.post('/', async (req, res) => {
const { first_name, last_name, email, phone } = req.body;
if (!email || !first_name || !last_name || !phone) {
return res
.status(400)
.json({ message: 'Please fill out all the required fields' });
}
try {
const duplicateCustomer = await Customer.findOne({ email }).exec();
if (duplicateCustomer) {
return res.status(409).json({
message: `Another user with email ${email} already exists, login instead`,
});
}
// Create and store new user
const result = await Customer.create({
first_name,
last_name,
email,
phone,
});
return res.status(200).json({
message: 'User created successfully',
first_name: result.first_name,
last_name: result.last_name,
email: result.email,
phone: result.phone,
});
} catch (error) {
res.status(500).json({ message: error.message });
}
});
module.exports = router;
路线出口
确保您的所有路线都像下面一样正确地导出,否则您将显示404页。
const express = require('express');
const router = express.Router();
// GET /api/products
router.get('/', (req, res) => {
res.send('This is the /products route');
});
module.exports = router;
根据您的要求自定义路线逻辑。您可以从数据库中检索数据,创建新记录,更新现有记录或根据您定义的HTTP方法和路由路径删除记录。
保存文件。
现在,您的新路由可以在Express Server中提供。您可以使用定义的路径路径访问它。例如,如果您创建了如上图所示的products.js
路由,则可以访问/api/products
,/api/products/:id
等的路由端点。
就是这样!您已经成功地在API文件夹中创建了一条新路由。随意添加更多路线并根据您的应用程序的需求进行自定义。
猫鼬模型
您可以在根级别的模型文件夹中添加自己的猫鼬型号。这是一个例子:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const customerSchema = new Schema({
first_name: String,
last_name: String,
email: String,
phone: String,
});
module.exports = mongoose.model('Customer', customerSchema);
更改路线结构
如果要将路由更改为其他东西而不是默认的/api
,则可以在根级别的server.js
文件中更改此路由。
// File-based routing
function registerRoutes(file) {
const routeName = path.parse(file).name;
const routePath = path.resolve(apiFolderPath, file);
const routeModule = require(routePath);
if (typeof routeModule === 'function') {
const route = `/api/${routeName}`;
app.use(route, routeModule);
console.log(`Route created: ${route}`);
} else {
console.error(`Invalid route file: ${file}. Skipping...`);
}
}