node.js:我可以在如下所示的路由器下进行POST吗?

时间:2018-11-16 20:15:21

标签: node.js mongodb post server user-management

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文件,其中包含一个表单。 我可以定义这样的发布方法吗?我是node.js的新手,所以真的不了解它的工作原理吗?

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

更新:18/11/26

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

我已将工作文件添加到其中。

2 个答案:

答案 0 :(得分:0)

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

def remote_connection(self):
    stdin, stdout, stderr = self.ssh.exec_command('python main_script.py', get_pty=True)
    while not self.kill_switch.is_set():
        for line in iter(lambda: stdout.readline(), ""):
            self.data.put(line)
            break
    self.ssh.exec_command('\x003', get_pty=True)

答案 1 :(得分:0)

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

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

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