Express 节点始终为“&引用;“正在等待本地主机”;在浏览器中

Express 节点始终为“&引用;“正在等待本地主机”;在浏览器中,express,ejs,Express,Ejs,我有一个简单的RESTAPI-crud应用程序,其中post和comment应该提交给nodeJS路由。当我单击其中一个表单按钮时,浏览器中始终显示“等待localhost”,一切正常。 这可能是由于html/ejs中的事件传播造成的吗?。提前谢谢 app.js: var methodOverride=require(“方法重写”); var express=要求(“快递”); var express=要求(“快递”); var bodyParser=require(“主体解析器”); var

我有一个简单的RESTAPI-crud应用程序,其中post和comment应该提交给nodeJS路由。当我单击其中一个表单按钮时,浏览器中始终显示“等待localhost”,一切正常。 这可能是由于html/ejs中的事件传播造成的吗?。提前谢谢

app.js:

var methodOverride=require(“方法重写”);
var express=要求(“快递”);
var express=要求(“快递”);
var bodyParser=require(“主体解析器”);
var-app=express();
应用程序使用(methodOverride(“_方法”);
use(bodyParser.json());
use(bodyParser.urlencoded({extended:true}));
让myDB=[{post:“hello”,comment:“hello1”}];
//阅读
应用程序获取(“/”,函数(请求,恢复){
res.render(“index.ejs”,{posts:myDB});
});
//创造
app.post(“/addPost”),功能(请求、回复){
让newComment={post:req.body.createP,comment:req.body.createC};
myDB.push(新成员);
});
//更新
app.put(“/updatePost”),函数(req,res){
让索引=编号(req.body.updateI)-1;
//res.send(“您已到达更新路线”+索引);
让updatedComment={post:req.body.updateP,comment:req.body.updateC};
拼接(索引,0,updatedComment);
});
//删除
应用程序删除(“/deletePost)”,(请求、回复)=>{
//res.send(“您已到达删除路径”+req.body.del);
让索引=编号(req.body.updateI)-1;
myDB.拼接(索引1);
});
app.listen(3000,函数(){
log(“服务器正在运行”);

});我认为您对API开发非常陌生。执行某些DB操作后,您不会将任何响应发送回浏览器。所以浏览器会等待响应,直到请求超时。每次提交表单后,您都应该发送如下响应:

app.post("/addPost", function(req, res) {
  // application logic goes here
  // once done send response as below
  res.render("index.ejs", { posts: updatedPosts });
})

另外,学习ajax请求与表单操作
submit

谢谢您快速而有用的回答,它解决了我的问题。因此,据我所知,对节点服务器的每个请求后面都必须有对浏览器的响应。没有单向请求吗?@vytasK,有很多话要说,但这将有助于你的好奇心