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 应用中,并且可以在路由中方便地进行数据库操作了。希望这对你有所帮助!
 
        
       
                     
                   
                    


