node.js:我可以在下面这样的路由器下进行POST吗


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创建了一个应用程序,添加了我自己的玉石文件,其中有一个表单。我可以定义这样的post方法吗?我是node.js的新手,所以真的不知道它是如何工作的?

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

更新:2018年11月26日

在我得到下面给出的答案后,我得到了答案,我正在添加GitHub链接。

我已经添加了工作文件。

下面是一个示例html登录表单,要使后路由工作,您必须确保定义method="post"和action="/(插入路由("。在我的示例action="/login"中,这意味着将有一个post请求发送到/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){
}

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

最新更新