首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ajax POST构建NodeJs Express路由器结构

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

Stack Overflow用户
提问于 2018-01-09 13:26:34
回答 1查看 736关注 0票数 0

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

代码语言:javascript
复制
const path = require('path');
const express = require('express');
const bodyParser = require('body-parser');

const app = express();

app.use(express.static(path.join(__dirname, 'public')));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

require('./server/router')(app); // start with the routing

app.listen(8888);

然后去我的router.js处理所有的路径文件

代码语言:javascript
复制
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“

代码语言:javascript
复制
var router = require('express').Router(); // I set this on each route

router.get('/', function (req, res) { // render the HTML template
         res.render('login');
    });


router.post('/validateLogin', function (req, res) { // user login - AJAX

    var loginIsValid = true; // TEST // req.body.username && req.body.password
    res.send({
          isValid: loginIsValid
    });
});

module.exports = router; // export this module

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

代码语言:javascript
复制
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路由

发布http://localhost:8888/validateLogin 404 (未找到)

甚至使用

代码语言:javascript
复制
url: '/validateLogin',

不管用。

少了什么或者错了什么?我的结构还好吗?

我从

http://expressjs.com/en/guide/routing.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-09 13:33:11

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48169244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档