Nodejs express 集成mongoose的问题
Nodejs express 集成mongoose的问题
刚学了mongoose 。就是把数据库的开启,模型,增删改查都写在了routes的文件下,有没标准的写法教程或例子?谢谢大家。。
5 回复
nodeclub 的例子就非常好. https://github.com/cnodejs/nodeclub
把这个clone下来慢慢看。。 https://github.com/madhums/node-express-mongoose-demo
看看这个,或者实在不行,就不用mongoose。。
当然可以。集成 mongoose
到 express
应用中通常包括以下几个步骤:
- 安装必要的库。
- 设置数据库连接。
- 创建数据模型。
- 在路由中使用这些模型进行增删改查操作。
下面是具体的实现步骤及代码示例:
1. 安装必要的库
首先需要安装 express
, mongoose
和其他可能需要的库(例如 body-parser
用于解析请求体):
npm install express mongoose body-parser
2. 设置数据库连接
创建一个单独的文件用于配置 mongoose
的连接,比如 db.js
:
// db.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydatabase', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
console.log('Connected to MongoDB');
});
3. 创建数据模型
在 models
文件夹下创建一个模型文件,例如 user.js
:
// models/user.js
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true, unique: true }
});
module.exports = mongoose.model('User', userSchema);
4. 在路由中使用模型
在 routes
文件夹中创建一个文件,例如 users.js
:
// routes/users.js
const express = require('express');
const router = express.Router();
const User = require('../models/user');
// 获取所有用户
router.get('/', async (req, res) => {
const users = await User.find();
res.json(users);
});
// 添加新用户
router.post('/', async (req, res) => {
const newUser = new User(req.body);
await newUser.save();
res.json(newUser);
});
module.exports = router;
5. 将路由注册到应用
最后,在主文件 app.js
或 index.js
中将路由注册到 Express 应用中:
// app.js 或 index.js
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('./db');
const usersRouter = require('./routes/users');
const app = express();
app.use(bodyParser.json());
app.use('/api/users', usersRouter);
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
通过以上步骤,你就能够将 mongoose
集成到你的 express
应用中,并且可以在路由中方便地进行数据库操作了。希望这对你有所帮助!