Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html NodeJS向MongoDB发送空数据_Html_Css_Node.js_Mongodb_Ejs - Fatal编程技术网

Html NodeJS向MongoDB发送空数据

Html NodeJS向MongoDB发送空数据,html,css,node.js,mongodb,ejs,Html,Css,Node.js,Mongodb,Ejs,我正在尝试使用nodejs、mongodb和ejs模板创建一个网站。我创建了一个注册页面,并试图将数据发送到mongodb。正在存储数据,但具有空值。我还尝试使用console.log打印输出,但其显示未定义。 这是两个文件 app.js var express=require("express"); var path=require("path"); var http=require("http"); var bodyParser=r

我正在尝试使用nodejs、mongodb和ejs模板创建一个网站。我创建了一个注册页面,并试图将数据发送到mongodb。正在存储数据,但具有空值。我还尝试使用console.log打印输出,但其显示未定义。 这是两个文件

app.js

var express=require("express");
var path=require("path");
var http=require("http");
var bodyParser=require("body-parser");
var MongoClient=require("mongodb").MongoClient;
var cookieParser=require("cookie-parser");
var ObjectId=require("mongodb").ObjectId;

var app=express();
var server=http.createServer(app);
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");
app.set("views", path.join(__dirname, 'views'));
app.set(express.static(path.join(__dirname, ('/public'))));
app.use(cookieParser());

app.get("/", function(req, res){
res.sendFile(path.join(__dirname, './views/index.html'));
});

app.get("/signup", function(req, res){
  var userid=req.cookies["userid"];
  if(userid!=null && userid!=""){
    res.redirect("/home");
  }else{
    res.render("signup", {responseMessage: ''});
  }
 });

 app.post("/signup", function(req, res){
 //check the email address
 var url="mongodb://localhost:27017";

  MongoClient.connect(url, {useUnifiedTopology: true}, function(err, db){
    if(err) throw err;
      var dbo=db.db("hospital");
      dbo.collection("patient").find({email: req.body.email}).toArray(function(err, data){
          if(data.length!=0){
            res.render("signup", {responseMessage : 'exists'});
            db.close();
        }else{
            var obj={
                name: req.body.name,
                email: req.body.email,
                password: req.body.password,
                conf_password:req.body.conf_password,
                phone:req.body.contact,
                age:req.body.age,
                gender:req.body.gender,
                address:req.body.address
            };
            dbo.collection("patient").insertOne(obj, function(req, data){
                res.render("signup", {responseMessage : 'success'});
                db.close();                 
            });
        }
       });
       });
       });

        server.listen(3030);

这是我使用ejs模板创建的注册页面,它检查电子邮件id是否已经存在

signup.ejs

<%- include('header'); -%>
<% if(responseMessage=="exists"){ %> 
                                        <!-- The Modal -->
    <div class="modal" id="errorModal">
      <div class="modal-dialog">
        <div class="modal-content">
                                        <!-- Modal Header -->
          <div class="modal-header">
            <h4 class="modal-title">Error</h4>
            <button type="button" class="close" data-dismiss="modal">&times;</button>
          </div>
                                        <!-- Modal body -->
          <div class="modal-body">
            <h4>An account with same email address already exists.</h4>
          </div>
                                        <!-- Modal footer -->
          <div class="modal-footer">
            <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
          </div>

        </div>
      </div>
    </div>
    <script type="text/javascript">
        $("#errorModal").modal();
    </script>
<% }else if(responseMessage=='success'){ %>
    <div class="modal" id="successModal">
      <div class="modal-dialog">
        <div class="modal-content">
          <!-- Modal Header -->
          <div class="modal-header">
            <h4 class="modal-title">Success</h4>
            <button type="button" class="close" data-dismiss="modal">&times;</button>
          </div>
          <!-- Modal body -->
          <div class="modal-body">
            <h4>Account created successfully.</h4>
          </div>
          <!-- Modal footer -->
          <div class="modal-footer">
            <button type="button" class="btn btn-success" onclick="location.assign('/login')">Log In</button>
          </div>

        </div>
      </div>
    </div>
    <script type="text/javascript">
        $("#successModal").modal();
    </script>

<% }  %>

<div class="container">
    <div class="col-sm-6 autocenter">
        <div class="card">
            <div class="card-header">
                <h4>Create Account</h4>
            </div>
            <div class="card-body">
                <form action="/signup" method="post" enctype="multipart/form-data" class="needs-validation" novalidate>
                  <div class="form-group">
                     <label for="name">Name:</label>
                     <input type="text" class="form-control" placeholder="Enter Full Name" name="name" id="name" required>
                     <div class="invalid-feedback">Please fill this Field.</div>
                  </div>
                  <div class="form-group">
                     <label for="email">Email address:</label>
                     <input type="email" class="form-control" placeholder="Enter email" name="email" id="email" required>
                     <div class="invalid-feedback">Please fill valid email address.</div>
                  </div>
                  <div class="form-group">
                    <label for="pwd">Password:</label>
                    <input type="password" class="form-control" placeholder="Enter password" name="password" id="password" required>
                    <div class="invalid-feedback">Please fill out this field.</div>
                  </div>
                  <div class="form-group">
                    <label for="pwd">Confirm Password:</label>
                    <input type="password" class="form-control" placeholder="Confirm password" name="conf_password" id="conf_password" required>
                    <div class="invalid-feedback">Please fill out this field.</div>
                  </div>
                  <div class="form-group">
                    <label for="contact">Contact Number:</label>
                    <input type="number" class="form-control" placeholder="Contact Number" name="contact" id="contact" required>
                    <div class="invalid-feedback">Please fill out this field.</div>
                  </div>
                  <div class="form-group">
                     <label for="age">Age:</label>
                     <input type="number" class="form-control" placeholder="Enter Age" name="age" id="age" required>
                     <div class="invalid-feedback">Please fill this Field.</div>
                  </div>
                  <label for="gender">Gender:</label>
                  <div class="radio">
                    <label><input type="radio" name="gender" value="male"> Male</label>
                  </div>
                  <div class="radio">
                    <label><input type="radio" name="gender" value="female"> Female</label>
                  </div>
                  <div class="form-group">
                    <label for="address">Address:</label>
                    <textarea class="form-control" rows="5" id="comment" name="address" placeholder="Enter Address" required></textarea>
                    <div class="invalid-feedback">Please fill this Field.</div>
                  </div>
                  <button type="submit" class="btn btn-primary">Submit</button>
                  <br>
                  <br>
                  <a href="/login">Already have an account? Log In.</a>
                </form>
            </div>
        </div>
    </div>
</div>
<%- include('footer'); -%>

错误
&时代;
已存在具有相同电子邮件地址的帐户。
接近
$(“#errorModal”).modal();
成功
&时代;
已成功创建帐户。
登录
$(“#成功模式”).modal();
创建帐户
姓名:
请填写这个字段。
电邮地址:
请填写有效的电子邮件地址。
密码:
请填写这个字段。
确认密码:
请填写这个字段。
联络电话:
请填写这个字段。
年龄:
请填写这个字段。
性别:
男性
女性
地址:
请填写这个字段。
提交


空值的原因可能是什么?
有人能帮忙吗?谢谢您…

如果您在console.log中记录req.body,您是否看到要插入的值?但是如果我在console.log中显示未定义的req.body,哪个api发送空数据