如何将Node.js连接到MongoDB数据库

如何将Node.js连接到MongoDB数据库

MongoDB是一个NoSQL数据库,用于存储大量的数据而不使用传统的关系数据库表。与行和列不同,MongoDB使用集合和文档来存储数据。集合由一组文档组成,文档由键值对组成,这是MongoDB中的基本数据单元。

确保MongoDB已经安装在您的电脑上。

要将Node.js应用程序连接到MongoDB,我们必须使用一个叫做 Mongoose 的库。

const mongoose = require("mongoose");
JavaScript

之后,我们需要调用Mongoose的connect方法

mongoose.connect("mongodb://localhost:27017/collectionName", {
   useNewUrlParser: true,
   useUnifiedTopology: true
});
JavaScript

然后我们需要定义一个模式。模式是一种结构,它提供有关数据在集合中存储方式的信息。

示例: 假设我们希望存储一个网站的联系表单的信息。

const contactSchema = {
   email: String,
   query: String,
}; 
JavaScript

然后,我们需要使用该模式创建一个模型,然后将数据以对象的形式存储在文档中。

const Contact = mongoose.model("Contact", contactSchema);
JavaScript

然后,最后,我们能够在我们的文件中存储数据。

app.post("/contact", function (req, res) {
   const contact = new Contact({
       email: req.body.email,
       query: req.body.query,
   });
   contact.save(function (err) {
       if (err) {
           res.redirect("/error");
       } else {
           res.redirect("/thank-you");
       }
   });
});
JavaScript

现在让我们通过一个代码示例来理解工作原理。

Contact.ejs

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content= 
              "width=device-width, initial-scale=1.0"> 
    <title>Document</title> 
</head> 
<body> 
    <form action="/contact" method="post"> 
        <input type="text" placeholder="Email" name="email"> 
        <input type="text" placeholder="Query" name="query"> 
        <button type="submit">Submit</button> 
    </form> 
</body> 
</html>
JavaScript

服务器文件(App.js或Index.js)

const express = require("express"); 
const ejs = require("ejs"); 
const mongoose = require("mongoose"); 
const bodyParser = require("body-parser"); 
  
mongoose.connect("mongodb://localhost:27017/newCollection", { 
  useNewUrlParser: true, 
  useUnifiedTopology: true
}); 
  
const contactSchema = { 
  email: String, 
  query: String, 
}; 
  
const Contact = mongoose.model("Contact", contactSchema); 
  
const app = express(); 
  
app.set("view engine", "ejs"); 
  
app.use(bodyParser.urlencoded({ 
    extended: true
})); 
  
app.use(express.static(__dirname + '/public')); 
  
app.get("/contact", function(req, res){ 
    res.render("contact"); 
}); 
  
app.post("/contact", function (req, res) { 
    console.log(req.body.email); 
  const contact = new Contact({ 
      email: req.body.email, 
      query: req.body.query, 
  }); 
  contact.save(function (err) { 
      if (err) { 
          throw err; 
      } else { 
        res.render("contact"); 
      } 
  }); 
}); 
  
app.listen(3000, function(){ 
    console.log("App is running on Port 3000"); 
});
JavaScript

输出:

如何将Node.js连接到MongoDB数据库

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册