node.js: 我可以像下面这样在路由器下做 POST 吗?

node.js: Can I do a POST under a router like below?

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });

});
router.post('/', function(req, res, next){
res.send("post works");
});

module.exports = router;

这是我的 index.js 文件。 我用 express 创建了一个应用程序,添加了我自己的 jade 文件,里面有一个表单。 我可以像这样定义一个 post 方法吗?我是 node.js 的新手,所以不太了解它的工作原理?

我想补充一点,我正在尝试将数据保存到 mongodb 实例。

更新:26/11/18

我在得到下面给出的答案后得到了解决方案, 我正在添加 GitHub link.

我已经添加了工作文件。

下面是一个示例 html 登录表单,要使 post 路由有效,您必须确保定义 method="POST" 和 action="/(Insert Route) ”。在我的示例 action="/login" 中,这意味着将有一个 post 请求发送到 /login。如果我有一个接受所有 /login 请求的路由器设置,它将被重定向到那里并且 router.post('/') 会起作用。

<form action="/login" method="POST">
    <p">Username</p>
    <input type="text" name="username" placeholder="Enter Username">
    <p>Password</p>
    <input type="password" name="password" placeholder="Enter Password">
    <input type="submit" name="" value="Login">
</form>

最后在网上搜索澄清后,两个答案都帮助了我。我试图从我的路线发出 POST 请求,我有变量 "router"。我忽略的是向其中添加函数名称。我的 html 表单试图提交给函数“/login”,而我的路由器没有定义该函数。

router.post('/login', function(req,res, next){
}

做到了。 感谢所有试图提供帮助的人。