繁体   English   中英

NodeJS 和 MongoDB“无法 POST /”

[英]NodeJS and MongoDB "Cannot POST /"

一直将 mongoDB 与 mongoose ODM 一起使用,但我似乎无法弄清楚。 我一直在在线学习教程,但是当我测试我的代码时,它被重定向到一个空白页面,上面写着“无法 POST /”

这是我的代码:

服务器.js

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


var PORT = 3332;

app.use("/", express.static(__dirname));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));


mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost/gamedata", {
    useNewUrlParser: true
});


var gameSchema = new mongoose.Schema({
    nickname: String
});

var User = mongoose.model("User", gameSchema);


app.post("/addname", (req, res) =>{

    var playerNickname = new User(req.body);
    playerNickname.save()
    .then(item => {

        console.log("nickname created")
        res.send("item saved to database");


    })
    .catch(err => {

        res.status(400).send("unable to save to database");
        console.log("error baby!");

    });
});

app.listen(PORT, function () {
    console.log("server is up and running using port " + PORT)
});

索引.html

<html>
<link href="https://fonts.googleapis.com/css?family=Press+Start+2P&display=swap" rel="stylesheet">

<body>
<h1 class="center-align">Create Nickname</h1>
    <form method="post" name="/addname">
        <input id="pickName" type='text' name='pickName' placeholder='Nickname' required>
        <input id='ready' value=" Ready >" type='submit'>
    </form>

</body>
<script>
</script>

</html>

当我改变时,似乎可以解决它

app.use("/", express.static(__dirname));

到以下代码:

app.use("/", (req, res) => {
    res.sendFile(__dirname + "/index.html");
});

但在我的具体情况下,我不能这样做。

有谁知道解决方法?

你应该改变你的index.html

代替使用:

 <form method="post" name="/addname">

你应该使用:

<form method="post" action="/addname">

这应该可以解决您的问题。


动作属性

action 属性定义提交表单时要执行的操作。

通常,当用户单击提交按钮时,表单数据会发送到服务器上的页面。

在上面的示例中,表单数据被发送到名为“/addname”的服务器上的页面。 此页面包含处理表单数据的脚本:

如果省略action属性,则将操作设置为当前页面。

属性“名称”用于输入字段,而不是标签。 我刚刚在这里找到了一些信息。 https://www.w3schools.com/html/html_forms.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM