无法访问Node.js到MongoDB(2022)

我以前在使用Node.js访问MongoDB时遇到了一些意外的麻烦。
为了不忘记,我会记录下来。

安装

顺便提一下,操作系统是Windows 10。

    • Node.jsをインストーラの指示に従ってインストール(v18.0.0)

 

    • MongoDBをインストーラの指示に従ってインストール(v5.08)

 

    •  ⇒インストール時、「Install MongoD as a Service」にチェック

 

    •   (MongoDB ServiceサービスがWindowsに登録される)

 

    •  ⇒途中「MongoDB Compass」にチェックをつけておく

 

    •   (インストール後MongoDB compassが立ち上がる)

 

     ⇒インストール後、mongoのパスを通しておく

使用MongoDB进行数据注册
将数据添加到MongoDB数据库中
在MongoDB中插入数据

    コマンドプロンプトを開いて、mongoシェルを起動
cmd > mongo
    データベース:myDBを作成
> use myDB
switched to db myDB
    コレクション:tableを作成
> db.createCollection('table')
{"ok" : 1 }
    適当なデータを登録
> db.table.insertOne({name:"taro",age:10})

用MongoDB Compass确认数据已经成功注册。

准备Node.js

    1. 在任意位置创建一个合适的文件夹

 

    打开命令提示符,并转到上面创建的文件夹,在命令行中使用npm安装mongodb。
cmd > cd (作成したフォルダのパス)
cmd > npm install mongodb

使用Node.js访问MongoDB

在上述创建的文件夹中创建一个名为app.js的文件。

const mongodb = require('mongodb');
const MongoClient = mongodb.MongoClient;
const url= 'mongodb://127.0.0.1:27017';
const client = new MongoClient(url);

async function run() {
  try {
    await client.connect();
    const database = client.db('myDB');
    const table = database.collection('table');
    const query = { name: 'taro' };
    const data = await table.findOne(query);
    console.log(data);
  } finally {
    await client.close();
  }
}
run().catch(console.dir);

只需从命令提示符中执行”node app.js”即可完成。

备注

    • URLの記述が多くのサイトではmongodb://localhost:27017と書いてあったのにそれではつながらない。localhostを0.0.0.0としたり、127.0.0.1としたら大丈夫だった。そこっ!?

 

    • ⇒ファイアウォールとかほかの設定見直しでずいぶん時間がかかってしまった。。

 

    • MongoDBのサービスは、Windowsの場合インストーラでチェックを付ければ手動でサービスを登録する必要はない。コマンドプロンプトでmongoと打つのは、mongoシェル(?)を呼び出すためのもので、MongoDBの起動とは関係ない。(当たり前?)

 

    MongoDB Compassは使いやすい!いいね!
广告
将在 10 秒后关闭
bannerAds