Javascript 为什么我的文本在post请求后不显示-MongoDB

Javascript 为什么我的文本在post请求后不显示-MongoDB,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我目前正在制作一个基本的twitter克隆。在我发出发帖请求时,我的文本没有出现之前,一切都很顺利。 有什么问题吗? 我的代码: app.js: var express = require("express"), mongoose = require("mongoose"), bodyParser = require("body-parser"), ejs

我目前正在制作一个基本的twitter克隆。在我发出发帖请求时,我的文本没有出现之前,一切都很顺利。 有什么问题吗? 我的代码:

app.js:

var     express     = require("express"),
        mongoose    = require("mongoose"),
        bodyParser  = require("body-parser"),
        ejs         = require("ejs");

var app = express();

mongoose.connect("mongodb://localhost:27017/twitter_clone", {
    useNewUrlParser: true,
    useUnifiedTopology: true
})
.then(() => console.log("CONNECTED TO DB"))
.catch((error) => console.log(error.message));

app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static(__dirname + '/public'));
app.set("view engine", "ejs");

// MONGODB TWEETS SCHEMA

var tweetsSchema =  new mongoose.Schema({
    text: String
})
var Tweets = mongoose.model("Tweets", tweetsSchema);

//================
//RESTFUL ROUTES
//================

// INDEX ROUTES

app.get("/", function(req, res){
    Tweets.find({}, function(err, allTweets){
        if(err){
            console.log(err);
        } else {
            res.render("home", {newtweet:allTweets});
        }
    })
})
app.get("/explore", function(req, res){
    res.render("explore");
})
app.get("/notifications", function(req, res){
    res.render("notifications");
})
app.get("/messages", function(req, res){
    res.render("messages");
})
app.get("/bookmarks", function(req, res){
    res.render("bookmarks");
})
app.get("/lists", function(req, res){
    res.render("lists");
})
app.get("/profile", function(req, res){
    res.render("profile");
})
app.get("/more", function(req, res){
    res.render("more");
})

// NEW ROUTES

app.get("/tweet/new", function(req, res){
    res.render("new");
})


// POST

app.post("/posttweet", function(req, res){
    var text = req.body.text;
    var newtweet = {text: text};
    Tweets.create(newtweet, function(err, newTweet){
        if(err){
            console.log(err)
        } else {
            res.redirect("/");
        }
    })
})
//DELETE
app.get("/delete/:id", function(req,res){
    mongoose.model("Tweets").remove({_id:req.params.id}, function(err, delData){
        res.redirect("/");
    })
})
app.listen(5000, function(){
    console.log("Server listening on port 5000");
})

home.ejs:



我以前问过一个类似的问题,我找到了一个解决方案,它运行了一段时间,但我做了一些更改,现在它运行不正常。创建一个表单,将post请求发送到“/postweet”:


这应该对你的单发路线提出正确的要求

编辑
提示:确保从处理程序发回一些响应,即使是错误,否则服务器将挂起。

home.ejs中的何处发出post请求?表单使用GET方法向/tweet/new发送请求。其工作原理与a href=“/tweet/new”相同,只是指向表单页面的链接我已经创建了表单,它只返回id@MrHulky那张表格看起来怎么样?
<form action="/tweet/new">
    <input class="bluebutton" type="submit" value="Tweet" />
</form>
<div class="tweets">
    <% newtweet.forEach(function(newtweet){ %>
        <div class="showtweets">
            <p class="tweetcontent">
                <%= newtweet.text %>
            </p>
        </div>
    <% }) %>
</div>
<form action="/posttweet" method="post">
  <input type="text" name="text" />
  <input type="submit" value="Tweet" />
</form>