为什么我的POST请求保持无限加载?

我试图build立一个node.js应用程序,当我试图做一个寄存器或login方法的发布请求,似乎继续加载,而不是做任何事情。 我的网页浏览器中出现以下错误 – “本地主机没有发送任何数据”。 这是我有我的代码设置的方式:

var express = require("express"), app = express(), bodyParser = require("body-parser"), mongoose = require("mongoose"), passport = require("passport"), flash = require("connect-flash"), LocalStrategy = require("passport-local"), methodOverride = require("method-override"), User = require("./models/user"); mongoose.connect("mongod://localhost/supportApp_v1"); app.use(bodyParser.urlencoded({extended:true})); app.set("view engine", "ejs"); app.use(express.static(__dirname + "/public")); app.use(methodOverride("_method")); app.use(flash()); app.use(require("express-session")({ secret: "luck", resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(User.authenticate())); passport.serializeUser(User.serializeUser()); passport.deserializeUser(User.deserializeUser()); app.use(function(req,res,next){ res.locals.currentUser = req.user; res.locals.error = req.flash("error"); res.locals.success = req.flash("success"); next(); }); app.get("/", function(req, res){ res.render("landing"); }); app.get("/register", function(req, res){ res.render("register"); }); app.post("/register", function(req, res){ var newUser = new User({username: req.body.username}); User.register(newUser, req.body.password, function(err, user){ if (err) { return res.render("register", {"error": err.message}); } else { passport.authenticate("local")(req, res, function(){ req.flash("success", "Welcome " + user.username); res.redirect("/"); }); } }); }); app.get("/login", function(req, res){ res.render("login"); }); app.post("/login", passport.authenticate("local", { successRedirect: "/", failureRedirect: "/login", }), function (req, res){ }); app.listen(process.env.PORT || 3000, process.env.IP, function(){ console.log("Server has started"); }); 

我使用的模型:

  var mongoose = require("mongoose"); var passportLocalMongoose = require("passport-local-mongoose"); var UserSchema = new mongoose.Schema({ username: String, password: String, email: String, age: Number }); UserSchema.plugin(passportLocalMongoose); module.exports = mongoose.model("User", UserSchema); 

和registry格:

  <div class="container" id="regContainer"> <h1>Register</h1> <hr> <form action="/register" method="POST"> <div class="form-group row"> <label for="regUser" class="col-sm-2 col-form-label">Username: </label> <div class="col-sm-10"> <input id="regUser" type="text" name="username" placeholder="Username"> </div> </div> <div class="form-group row"> <label for="regUser" class="col-sm-2 col-form-label">Email:</label> <div class="col-sm-10"> <input id="regUser" type="text" name="email" placeholder="Email"> </div> </div> <div class="form-group row"> <label for="regPass" class="col-sm-2 col-form-label">Password:</label> <div class="col-sm-10"> <input id="regUser" type="password" name="password" placeholder="Password"> </div> </div> <div class="form-group row"> <label for="regPass" class="col-sm-2 col-form-label">Age:</label> <div class="col-sm-10"> <input id="regUser" type="number" name="age" placeholder="Age"> </div> </div> <div class="form-group row"> <div class="offset-sm-2 col-sm-10"> <button type="submit" class="btn btn-primary">Register</button> </div> </div> 

通过Mongoose连接是

 mongoose.connect('mongodb://localhost/myapp'); 

你错过了一个d 。 @MariaInesParnisari也怀疑连接问题。 我还注意到,你的register.html在结尾处缺less一个露珠标签,比如</form> (可能是由于不完整的复制和粘贴)。 我也想知道你放置.html文件的位置,例如你没有设置'views'的path

 app.set('views', path.join(__dirname, '/views')); 

也许你正在使用默认?