用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

Node.js是著名的开源环境之一,允许你在浏览器之外运行javascript脚本。MERN和MEAN堆栈是两个最流行的组合,可以帮助你创建一个惊人的应用程序。在这篇文章中,我们将用Node、Bootstrap和MongoDB创建一个简单的初学者友好的联系表单应用程序。在开始这个项目之前,我们必须确保Node.js和MongoDB已经安装在你的系统中。

项目结构:

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

第1步:创建一个项目文件夹,并在IDE中打开该文件夹。

首先用你提供的值创建一个package.json文件,在IDE的终端使用npm init命令。

npm init

你可以在启动过程中自定义所问的问题和创建的字段,或者将其保留为默认值。过程结束后,你会在你的项目文件夹中找到package.json文件。

第2步:接下来在项目文件夹中创建一个index.js文件,这将是应用程序的入口点。

第3步:现在使用npm命令安装依赖项expressmongoose 、 和 nodemon。

npm install express mongoose nodemon

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

安装Express、mongoose和nodemon

安装依赖项需要一些时间,完成后,将创建一个名为node_modules的文件夹,在依赖项下的package.json文件中,你会发现所有已安装的依赖项的名称及其版本。

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

Dependencies

第四步:我们接下来将打开index.js文件,用以下代码创建一个简单的Express应用程序。

// Importing express module
var express = require("express");
 
// Importing mongoose module
var mongoose = require("mongoose");
const port = 80;
const app = express();
 
// Handling the get request
app.get("/", (req, res) => {
  res.send("Hello World");
});
 
// Starting the server on the 80 port
app.listen(port, () => {
  console.log(`The application started
  successfully on port ${port}`);
});

这段代码创建了一个简单的Express应用程序,它启动了一个服务器并在80端口监听连接。该应用程序对”/”的请求以 “Hello World “作为回应。

第5步:要运行代码,到终端输入

nodemon index.js

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

应用程序成功启动

第6步:然后打开你的浏览器,http://localhost ,或者干脆用localhost从自身访问服务器。

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

Localhost

页面显示 “Hello World”,这意味着我们的Express应用程序正在正常工作。

第7步:我们现在需要添加2行代码,因为我们将需要express.json()express.urlencoded()用于POST和PUT请求。Express为我们提供了中间件,以处理请求正文中传入的数据对象。在POST和PUT请求中,我们正在向服务器发送数据对象,并要求服务器接受或存储该数据对象,该数据对象被包含在该请求的req.body中。

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

第8步:在项目文件夹内创建一个名为public的文件夹。我们将在项目的public目录下创建所有的静态HTML文件。

// For serving static html files
app.use(express.static('public'));

第9步:现在我们将通过使用以下代码连接到mongoose数据库。本项目的数据库名称为projectDG

mongoose.connect("mongodb://localhost/projectDG", {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});
var db = mongoose.connection;

第10步:接下来,我们要定义一个post方法,将联系人表单的数据保存到我们的数据库。我们在这里定义我们的数据对象并创建名为users的集合。在成功插入数据后,我们将重定向到formSubmitted.html

这是index.js文件的主要部分,在这里将处理发布请求,并将数据从客户端请求适当转移到主数据库服务器。

app.post("/formFillUp", (req, res) => {
  var name = req.body.name;
  var reason = req.body.reason;
  var email = req.body.email;
  var phone = req.body.phone;
  var city = req.body.city;
  var state = req.body.state;
  var addressline = req.body.addressline;

  var data = {
    name: name,
    reason: reason,
    email: email,
    phone: phone,
    city: city,
    state: state,
    addressline: addressline,
  };

  db.collection("users").insertOne(data, 
  (err, collection) => {
    if (err) {
      throw err;
    }
    console.log("Data inserted successfully!");
  });

  return res.redirect("formSubmitted.html");
});

最终的index.js将如下图所示。

Filename: index.js

var express = require("express");
var mongoose = require("mongoose");
const port = 80;
const app = express();
   
mongoose.connect("mongodb://localhost/projectDG", {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});
var db = mongoose.connection;
   
app.use(express.json());
   
// For serving static HTML files
app.use(express.static("public"));
app.use(express.urlencoded({ extended: true }));
   
app.get("/", (req, res) => {
  res.set({
    "Allow-access-Allow-Origin": "*",
  });
     
  // res.send("Hello World");
  return res.redirect("index.html");
});
   
app.post("/formFillUp", (req, res) => {
  var name = req.body.name;
  var reason = req.body.reason;
  var email = req.body.email;
  var phone = req.body.phone;
  var city = req.body.city;
  var state = req.body.state;
  var addressline = req.body.addressline;
   
  var data = {
    name: name,
    reason: reason,
    email: email,
    phone: phone,
    city: city,
    state: state,
    addressline: addressline,
  };
   
  db.collection("users").insertOne(
  data, (err, collection) => {
    if (err) {
      throw err;
    }
    console.log("Data inserted successfully!");
  });
   
  return res.redirect("formSubmitted.html");
});
   
app.listen(port, () => {
  console.log(`The application started 
  successfully on port ${port}`);
});

第11步:现在我们将在public文件夹内创建index.html, formSubmittedhtml, 和 style.css文件。

index.html:

<!DOCTYPE html>
<html lang="en">
 
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,
        initial-scale=1, shrink-to-fit=no" />
 
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href=
"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
        integrity=
"sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
        crossorigin="anonymous" />
    <link rel="stylesheet" href="./style.css" />
    <link href=
"https://fonts.googleapis.com/css2?family=Poppins&display=swap"
        rel="stylesheet" />
</head>
 
<body>
    <div class="container mt-3">
        <br />
        <h1>Contact Us</h1>
        <br />
        <form action="/formFillUp" method="POST">
            <div class="form-row">
                <div class="form-group col-md-6">
                    <label for="inputName"
                        style="font-size: 23px">
                        Name
                    </label>
                    <input type="text" class="form-control"
                        id="name" name="name" />
                </div>
 
                <div class="form-group col-md-6">
                    <label for="inputReason"
                        style="font-size: 23px">
                        Reason for contacting
                    </label>
                     
                    <input type="text" class="form-control"
                        id="reason" name="reason" />
                </div>
            </div>
 
            <div class="form-row">
                <div class="form-group col-md-6">
                    <label for="inputEmail"
                        style="font-size: 23px">
                        Email
                    </label>
                    <input type="email" class="form-control"
                        id="inputEmail" name="email" />
                </div>
                <div class="form-group col-md-6">
                    <label for="inputPhone"
                        style="font-size: 23px">Phone
                    </label>
                    <input type="text" class="form-control"
                        id="inputPhone" name="phone" />
                </div>
            </div>
 
            <div class="form-row">
                <div class="form-group col-md-6">
                    <label for="inputCity"
                        style="font-size: 23px">City
                    </label>
                    <input type="text" class="form-control"
                        id="inputCity" name="city" />
                </div>
                <div class="form-group col-md-6">
                    <label for="inputState"
                        style="font-size: 23px">State
                    </label>
                    <input type="text" class="form-control"
                        id="inputState" name="state" />
                </div>
            </div>
            <div class="form-group">
                <label for="inputAddress"
                    style="font-size: 23px">Address</label>
                <input type="text" class="form-control"
                    id="inputAddress" name="addressline" />
            </div>
            <button type="submit" class="btn btn-primary">
                Submit
            </button>
        </form>
    </div>
</body>
 
</html>

输出:

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

index.html

formSubmitted.html

<!DOCTYPE html>
<html>
 
<head>
    <title>Form Submitted Successfully</title>
    <link rel="stylesheet" href="./style.css" />
    <link href=
"https://fonts.googleapis.com/css2?family=Poppins&display=swap"
        rel="stylesheet" />
</head>
 
<body>
    <div class="containerFormSubmittedMessage">
        <h1>Form Submitted Successfully!</h1>
         

            Thank you for contacting us! Our
            team will mail you shortly.
        
 
    </div>
</body>
 
</html>

输出:

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

formSubmitted.html

style.css

body {
  background-image: linear-gradient(120deg,
                 #9de7fa 0%, #f89fba 100%);
  color: white;
  font-family: "Poppins", sans-serif;
  min-height: 100vh;
}
 
.btn-primary {
  color: #fff;
  background-color: #f89fba;
  border-color: #f89fba;
}
.containerFormSubmittedMessage {
  display: flex;
  flex-direction: column;
  margin: auto;
  justify-content: center;
  align-items: center;
  height: 200px;
  border: 3px solid whitesmoke;
}

第12步:在创建了这三个文件之后,我们的项目就差不多完成了。我们现在将启动MongoDB。打开Windows Powershell窗口,然后输入命令mongod.

mongod

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

在Powershell窗口中输入mongod命令

打开另一个Windows Powershell窗口,输入命令mongo

mongo

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

在另一个Powershell窗口中输入mongo命令

第13步:打开你的IDE,在终端输入nodemon index.js来启动应用程序。转到localhost .

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

注意:成功插入的数据将在正确处理职位请求后被打印。

  • 填写联系表格的细节。在成功提交表格后,你将被重定向到index.html中的formSubmitted.html。

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

Contact Form

  • 现在,为了检查我们在联系表格中输入的数据是否已经保存到projectDG数据库中,我们将在第二个Windows Powershell窗口中使用以下命令。

该命令列出了mongoDB中的所有数据库:

show dbs

这个命令将让我们切换到我们的数据库:

use projectDG 

这个命令我们将检查集合中的某个特定数据:

db.users.find()

用Node.js Bootstrap和MongoDB建立一个简单的初级应用程序

用户在projectDG数据库中收集到的数据

我们可以清楚地看到在MongoDB数据库中已经插入了数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Bootstrap 问答