Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax POST构建NodeJs Express路由器结构_Javascript_Node.js_Ajax - Fatal编程技术网

Javascript 使用Ajax POST构建NodeJs Express路由器结构

Javascript 使用Ajax POST构建NodeJs Express路由器结构,javascript,node.js,ajax,Javascript,Node.js,Ajax,我想在我的项目中使用快速路由器。我创建了我的app.js(我的视图引擎是Handlebar) 然后前往我的router.js,在那里我处理所有路由文件 module.exports = function(app){ var router = require('express').Router(); app.use('/login', require('./routes/login')); app.use('/route2', require('./routes/rout

我想在我的项目中使用快速路由器。我创建了我的
app.js
(我的视图引擎是Handlebar)

然后前往我的
router.js
,在那里我处理所有路由文件

module.exports = function(app){
    var router = require('express').Router();

    app.use('/login', require('./routes/login'));
    app.use('/route2', require('./routes/route2'));
    app.use('/route3', require('./routes/route3'));

    router.post('/logout', function (req, res) { 
        var session = req.session;
        session.destroy();
        res.send({});
    });
};
我的登录路径处理两项任务:

  • 路线本身
  • Ajax调用“validateLogin”

客户端有一个简单的登录表单。当按下登录按钮时,我执行这个Ajax调用

function login() {
    $.ajax({
        type: 'POST',
        url: 'validateLogin',
        contentType: 'application/json',
        data: JSON.stringify({
            username: "Foo",
            password: "Bar"
        })
    }).done(function (response) {
        if (response.isValid) { // Redirect the user to the next page
            $(location).attr('href', 'next page');
        }
    }).fail(function () {

    });
}
此Ajax调用失败,因为找不到POST路由

邮政404(未找到)

甚至使用

url: '/validateLogin',
不起作用

有什么遗漏或错误?我的结构好吗

我从他那里得到了信息


假设所有其他设置都正确,根据您的代码设置,您想要访问的url实际上位于
/login/validateLogin

假设所有其他设置都正确,根据您的代码设置,您想要访问的url似乎实际位于
/login/validateLogin

try
url:“/validateLogin”,
no,不起作用try
url:“/validateLogin”,“不起作用是的,我认为我的路径可能是相对的。我总是要写
“/route/name”
?我不是100%确定,但这可能是Jquery-Ajax或express的一个特别的怪癖。这真的取决于几个因素,我建议调查一下。但是,试试
/name
/name
看看是否有效。是的,有效,我认为我的路径可能是相对的。我总是要写
“/route/name”
?我不是100%确定,但这可能是Jquery-Ajax或express的一个特别的怪癖。这真的取决于几个因素,我建议调查一下。但是,请尝试
/name
。/name
,看看是否有效。
function login() {
    $.ajax({
        type: 'POST',
        url: 'validateLogin',
        contentType: 'application/json',
        data: JSON.stringify({
            username: "Foo",
            password: "Bar"
        })
    }).done(function (response) {
        if (response.isValid) { // Redirect the user to the next page
            $(location).attr('href', 'next page');
        }
    }).fail(function () {

    });
}
url: '/validateLogin',