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){
}
做到了。
感谢所有试图提供帮助的人。
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){
}
做到了。 感谢所有试图提供帮助的人。