Html NodeJS向MongoDB发送空数据
我正在尝试使用nodejs、mongodb和ejs模板创建一个网站。我创建了一个注册页面,并试图将数据发送到mongodb。正在存储数据,但具有空值。我还尝试使用console.log打印输出,但其显示未定义。 这是两个文件 app.jsHtml 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
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">×</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">×</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发送空数据