【发布时间】:2018-01-09 13:26:34
【问题描述】:
我想在我的项目中使用 Express 路由器。我创建了我的app.js(我的视图引擎是 Handlebars)
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 处理所有路由文件
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”
.
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 调用
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 路由
POST http://localhost:8888/validateLogin 404(未找到)
即使使用
url: '/validateLogin',
不起作用。
有什么遗漏或错误?我的结构好吗?
我从
获取信息【问题讨论】:
-
试试
url: '/validateLogin', -
不,那没用
标签: javascript node.js ajax