在当今的软件开发领域,MongoDB和Node.js是非常流行的技术组合。MongoDB是一个强大的NoSQL数据库,而Node.js则是基于Chrome V8引擎的JavaScript运行环境,它们的结合可以让开发者高效地构建出各种类型的应用程序。Ubuntu作为一个广泛使用的Linux发行版,为我们提供了一个稳定且易于使用的开发环境。下面将详细介绍如何在Ubuntu上安装和配置MongoDB与Node.js。
安装MongoDB
首先,我们需要导入MongoDB的官方GPG密钥,这是为了确保我们下载的软件包是来自官方且没有被篡改。打开终端,输入以下命令:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
上述命令中,wget -qO -用于从指定的URL下载文件并将其输出到标准输出,然后通过管道(|)将输出传递给sudo apt-key add -,从而完成密钥的添加。
接下来,我们要为MongoDB创建一个源列表文件。使用以下命令:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
这里的命令将指定的源信息写入到指定的文件中,确保系统知道从哪里下载MongoDB软件包。
更新系统的软件包列表,以便获取最新的软件包信息:
sudo apt-get update
现在可以安装MongoDB了,使用以下命令:
sudo apt-get install -y mongodb-org
安装完成后,我们需要启动MongoDB服务,并设置其在系统启动时自动启动。使用以下命令:
sudo systemctl start mongod sudo systemctl enable mongod
为了验证MongoDB是否成功安装并运行,可以检查服务的状态:
sudo systemctl status mongod
如果看到“active (running)”的字样,说明MongoDB已经成功启动。
配置MongoDB
MongoDB的配置文件位于/etc/mongod.conf。我们可以使用文本编辑器(如nano或vim)来打开并编辑这个文件。例如,使用nano编辑器:
sudo nano /etc/mongod.conf
在配置文件中,有几个重要的参数可以进行调整。比如,bindIp参数用于指定MongoDB监听的IP地址。默认情况下,它可能只监听本地回环地址(127.0.0.1),如果你想让其他机器可以访问MongoDB,可以将其修改为服务器的实际IP地址或0.0.0.0(表示监听所有可用的网络接口)。
修改完成后,保存并退出编辑器。然后重新启动MongoDB服务,使配置生效:
sudo systemctl restart mongod
为了保证MongoDB的安全性,我们可以启用身份验证。首先,以管理员身份连接到MongoDB:
mongo
在MongoDB的shell中,切换到admin数据库:
use admin
创建一个管理员用户:
db.createUser(
{
user: "admin",
pwd: "your_password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)这里的“your_password”需要替换为你自己设置的强密码。创建用户后,退出MongoDB shell。然后再次编辑配置文件,启用身份验证:
sudo nano /etc/mongod.conf
在配置文件中找到“security”部分,取消注释并添加以下内容:
security: authorization: enabled
保存并退出编辑器,重新启动MongoDB服务:
sudo systemctl restart mongod
之后,连接到MongoDB时就需要提供用户名和密码了:
mongo -u "admin" -p "your_password" --authenticationDatabase "admin"
安装Node.js
在Ubuntu上安装Node.js有多种方法,这里我们使用NodeSource的发行版。首先,添加NodeSource的GPG密钥:
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
上述命令会自动下载并添加NodeSource的源到系统中。然后,安装Node.js和npm(Node.js的包管理工具):
sudo apt-get install -y nodejs
安装完成后,验证Node.js和npm是否成功安装:
node -v npm -v
如果分别显示了Node.js和npm的版本号,说明安装成功。
配置Node.js
npm有一些默认的配置选项,我们可以根据需要进行调整。例如,我们可以设置npm的全局安装路径,避免每次安装全局包时都需要使用sudo。首先,创建一个用于全局包的目录:
mkdir ~/.npm-global
然后,配置npm使用这个目录:
npm config set prefix '~/.npm-global'
接下来,将这个目录添加到系统的环境变量中。编辑~/.profile文件:
nano ~/.profile
在文件末尾添加以下内容:
export PATH=~/.npm-global/bin:$PATH
保存并退出编辑器,然后使配置生效:
source ~/.profile
现在,我们就可以在不使用sudo的情况下全局安装npm包了。
使用MongoDB和Node.js开发应用
安装和配置好MongoDB和Node.js后,我们可以开始开发应用程序了。首先,创建一个新的项目目录:
mkdir my-node-mongo-app cd my-node-mongo-app
初始化一个新的npm项目:
npm init -y
安装MongoDB的Node.js驱动程序:
npm install mongodb
以下是一个简单的Node.js示例代码,用于连接到MongoDB并添加一条文档:
const { MongoClient } = require('mongodb');
// 连接字符串
const uri = "mongodb://admin:your_password@localhost:27017";
const client = new MongoClient(uri);
async function run() {
try {
await client.connect();
const database = client.db('testdb');
const collection = database.collection('testcollection');
const doc = { name: 'John Doe', age: 30 };
const result = await collection.insertOne(doc);
console.log(`A document was inserted with the _id: ${result.insertedId}`);
} finally {
await client.close();
}
}
run().catch(console.dir);将上述代码保存为app.js,然后在终端中运行:
node app.js
如果一切正常,你应该会看到添加文档的信息输出。
通过以上步骤,我们详细介绍了如何在Ubuntu上安装和配置MongoDB与Node.js,并给出了一个简单的应用开发示例。希望这些内容能帮助你顺利搭建开发环境,开展项目开发。
