通过Promise在Node.js中使用Mongodb的备忘录(?)

首先

我创建了这个程序,是因为当我想要在Node.js中操作Mongodb时,希望能更简单、更轻松一些。轻松简单真是太棒了。

前提 – 此条是要求对下述内容进行释义的前提。

・已经完成Node.js的安装
・已经完成Mongodb的安装
・已经完成npm的安装
・正在安装mongodb的Node.js API

环境

・樱花VPS上的Centos7
・node.js版本为v15.11.0
・npm版本为7.6.2
・mongodb版本为v4.4.4

蒙古数据库

我们先创建一个用于操作Mongodb的目录,以便更容易理解。

$mkdir database
$cd database

连接部分 (jiē​jù​ bù​fen​)

首先,创建一个关于与Mongodb连接的文件。

$vim mongo_connect.js
//mongo_connect.js
const MongoClient = require('mongodb').MongoClient
function open(){
  let url = 'mongodb://ユーザー名:パスワード@localhost:27017';
  const connectOptions = {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  }
  return new Promise((resolve,reject)=>{
    MongoClient.connect(url,connectOptions,(err,db)=>{
      if(err) reject(err);
      else resolve(db);
    });
  });
}

function close(db){
  if(db)db.close();
}

let db = {
  open:open,
  close:close
}

module.exports=db;

如果您创建了用户,则请按照以上方式操作。请设置用户名和密码,并输入正确。如果您想设置认证,请提出。

请务必参考本文末尾所写的内容。
如果您希望将Mongodb用作网站的数据库或任何其他用途,建议您将端口从27017更改。由于本次是用于测试兼容性,所以仍使用默认端口。

查询部分

无论在Mongodb中是否可以称之为查询,总之这就是一个查询。

$vim insertOne.js
//insertOne.js
const zenodb = require('./mongo_connect.js');

function insertOne(object,col){
  let database = null;
  zenodb.open()
  .then((db)=>{
    database = db;
    const dbName = db.db("自分の使うデータベース名を入力してね!");
    return dbName.collection(col);
  })
  .then((collection)=>{
    return collection.insertOne(object);
  })
  .catch((err)=>{
    console.error(err)
  })
  .finally(()=>{
    zenodb.close(database);
  })
}

module.exports=insertOne;

我为您准备了一个方法,使用insertOne({数据名称,数据},集合名称)可以执行。我在这里写下这样一句话,是因为参考的Q&A回答者这样写。我查了但是不太明白意思。为了安全起见,我附上了参考的Q&A网站。

请问如何在Node.js中使用Promises与MongoDB?

聚集一些

虽然这次只使用了insertOne方法,但如果还制作其他方法,当然会更方便。不过,如果这样做的话,require这个动作可能会变得相当麻烦!所以,让我们事先创建好集合部分吧。

$vim methods.js
const insertOne = require("./insertOne.js");

let methods = {
  insertOne:insertOne,
}

module.exports=methods;

如果能够在methods的地方添加多个查询,那就太方便了。
最后,让我们试试这个程序,只是为了保险起见。
我们将使用之前创建的methods文件。

const insertOne = require("./insertOne.js");

let methods = {
  insertOne:insertOne,
}

methods.insertOne({name:"tekitou"},"users");

module.exports=methods;
node methods.js

当你使用mongodb shell登录并且在目标数据库的集合中有数据存在的话,那就可以了。
就这样!
如果有任何问题,请写下来!虽然可能有些东西我也不懂哈哈w

广告
将在 10 秒后关闭
bannerAds