【发布时间】:2017-12-21 06:49:50
【问题描述】:
我在页面auth.ejs 上有一个带有id: 'tune-in' 的按钮,单击该按钮应转到新页面index.ejs。
但是,当我单击按钮时,index 页面未呈现。相反,我仍然在 auth 页面上,但是我确实在控制台中记录了“应该显示调入主页”的消息。
在 html (ejs) 页面上(视图文件夹 > auth.ejs)
document.getElementById('tune-in').addEventListener('click', function() {
$.ajax({
type: 'GET',
url: '/tune-in',
success: function(){
console.log("should display tune-in home page");
}
});
}, false);
控制器文件夹 > authController.js
app.get('/tune-in', function(req, res){
res.render('index');
});
查看文件夹 > index.ejs 这只是一个普通的 html 页面,应该在点击时呈现。
编辑: index.js
var express = require('express');
var cookieParser = require('cookie-parser');
// userController takes care of rendering the view and
// routing requests to the server
var authController = require('./controllers/authController');
var userController = require('./controllers/userController');
var app = express();
app.set('view engine', 'ejs');
app.use(express.static('./public'))
.use(cookieParser());
authController(app);
app.listen(process.env.PORT || 4000);
console.log("Listening to port 4000...");
【问题讨论】:
-
我可以加你
app.js或者你的主文件是什么吗?您还可以添加处理路由的位置吗?我想看看您是否正确设置了模板以及您是否正确设置了路线。 -
这种行为确实是意料之中的,因为您没有要求呈现页面。 $.ajax 只是获取索引的内容。在你告诉它之前它不会渲染内容。
-
@AnamulHasan 但我告诉它在 authController.js 中渲染
-
你想渲染 index 的内容替换 auth.ejs 的内容。我说的对吗?
-
@AnamulHasan 是的!
标签: javascript ajax express ejs