Nodejs如何使用mongo数据库

Nodejs如何使用mongo数据库

首先,请参考下面两个链接,配置并运行express和mongodb。 1.使用express生成一个空白网站 http://cnodejs.org/topic/501f43eef767cc9a51c7b90e 2.mongo数据库的安装及命令行连接 http://cnodejs.org/topic/50285b34f767cc9a512a1977

安装mongoose模块

npm install -g mongoose

mongoose官网 http://mongoosejs.com/

在express的routes/index.js文件里,加入如下代码

exports.index = function(req, res){
  var mongoose = require('/usr/local/lib/node_modules/mongoose'); 

var db = mongoose.createConnection(‘localhost’, ‘test’);

var schema = mongoose.Schema({ name: ‘string’ }); var User = db.model(‘User’, schema);

var kitty = new User({ name: ‘Zildjian’ }); kitty.save(function (err) { if (err) // … res.end(‘meow’); });

User.find({‘name’:‘Zildjian’},function(err,docs){
res.render(‘index’, { title: docs}); }); };

打开网页地址 http://localhost:3000/ 就能看到刚才新增的数据库记录输出了。


7 回复

Node.js 如何使用 MongoDB

首先,确保你已经成功安装并配置了 Express 和 MongoDB。你可以参考以下链接来完成这些步骤:

  1. 使用 Express 生成一个空白网站: http://cnodejs.org/topic/501f43eef767cc9a51c7b90e

  2. MongoDB 的安装及命令行连接: http://cnodejs.org/topic/50285b34f767cc9a512a1977

接下来,我们需要安装 mongoose 模块来简化与 MongoDB 的交互。mongoose 是一个对象文档映射器(ODM)库,用于处理 MongoDB 中的数据模型。

npm install mongoose --save

安装完成后,我们可以在 Express 应用程序中使用 mongoose 来操作 MongoDB 数据库。以下是一个简单的示例,展示了如何在 Express 应用程序中使用 mongoose 连接到 MongoDB 并进行基本的 CRUD 操作。

示例代码

假设你有一个名为 app.js 的 Express 应用程序文件,并且你想在 routes/index.js 文件中添加以下代码:

app.js

const express = require('express');
const mongoose = require('mongoose');
const indexRouter = require('./routes/index');

const app = express();

// 连接到 MongoDB
mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true, useUnifiedTopology: true });

app.use(express.json());
app.use('/', indexRouter);

const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

routes/index.js

const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');

// 定义数据模型
const UserSchema = new mongoose.Schema({
  name: String
});

const User = mongoose.model('User', UserSchema);

router.get('/', async (req, res) => {
  try {
    // 查询所有用户
    const users = await User.find({});
    res.json(users);
  } catch (err) {
    res.status(500).send(err.message);
  }
});

router.post('/', async (req, res) => {
  try {
    // 创建新用户
    const newUser = new User(req.body);
    await newUser.save();
    res.status(201).json(newUser);
  } catch (err) {
    res.status(500).send(err.message);
  }
});

module.exports = router;

在这个示例中,我们首先定义了一个 User 模型,然后在路由中实现了两个基本的 CRUD 操作:获取所有用户信息和创建新用户。

运行应用程序

启动你的 Express 应用程序:

node app.js

现在,你可以通过访问 http://localhost:3000/ 来查看所有用户信息,或者通过发送 POST 请求来创建新用户。

这样,你就成功地将 Node.js 与 MongoDB 结合使用,并实现了基本的 CRUD 操作。


这个s 入门资料么~

谢谢提意见。我现在刚接触这个,过段时间,我对这方面更熟悉了,再整理补充更好的。

期待楼主更新昂 最近感觉这个mongoose用起来是还蛮麻烦的啊

看到楼主有研究mongoose,想问一下mongoose中如何实现统计查询,比如user类有个age属性,我想查询数据库中所有user的sum(age),能搞定吗?

lz我想问一下这个查数据库是不是都是异步的,绝不阻塞?我想知道这个查数据就是这么操作么?有什么更高明的做法?比如使用线程池?

要在Node.js中使用MongoDB,通常我们会使用Mongoose库来简化操作。以下是具体步骤和示例代码。

步骤:

  1. 安装Express:创建一个新的Express项目,可以参考提供的链接进行设置。
  2. 安装Mongoose:通过NPM安装Mongoose模块。
    npm install mongoose
    
  3. 配置Mongoose连接:在应用启动时配置与MongoDB的连接。
  4. 定义Schema和Model:创建Schema并定义对应的Model。
  5. 操作数据库:使用Model进行数据的增删改查(CRUD)操作。

示例代码

假设我们有一个简单的Express应用,并希望对用户数据进行管理。

安装依赖

npm install express mongoose

连接MongoDB

app.js或任何合适的地方初始化Mongoose连接:

const express = require('express');
const mongoose = require('mongoose');

const app = express();

// 连接到本地MongoDB
mongoose.connect('mongodb://localhost/test', { 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 successfully");
});

// 设置路由
app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

定义Schema和Model

routes/index.js中定义Schema和Model:

const express = require('express');
const router = express.Router();
const mongoose = require('../app'); // 假设你的mongoose实例在app.js中被导出

const UserSchema = new mongoose.Schema({
  name: String,
});

const User = mongoose.model('User', UserSchema);

router.get('/add-user', async (req, res) => {
  const newUser = new User({ name: 'Zildjian' });
  await newUser.save();
  res.send('User added successfully.');
});

router.get('/get-users', async (req, res) => {
  const users = await User.find({});
  res.json(users);
});

module.exports = router;

修改主应用文件

app.js中添加路由:

const indexRouter = require('./routes/index');

app.use('/', indexRouter);

现在,你可以运行应用,并通过/add-user/get-users访问这些路由来测试数据库操作。

总结

以上就是如何在Node.js中使用Mongoose操作MongoDB的基本方法。通过定义Schema和Model,我们可以方便地执行CRUD操作,使得数据库交互更加简单直观。

回到顶部