我正在使用Node.js + Express + Jade来演示一些非常简单的页面。我有两天这个问题。我google了很多,但找不到答案。基本上,我从一个页面重定向到另一个页面。在目标页面上,我在document.ready中有一些socket.io代码。问题来自/ pageone,pagetwo正确呈现(但浏览器中的url仍为/ pageone),但document.ready中的代码未执行。
我的router.js
app.post('/pageone', session, function(req, res){
res.redirect('/pagetwo');
});
app.get('/pagetwo', function(req, res){
res.render('pagetwo', { title: 'demo' });
});
我的pagetwo jade
doctype
html
head
title #{title} - My Site
link(rel='stylesheet', href='/css/style.css')
script(type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js')
script(type='text/javascript' src='https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js')
script.
$(document).ready(function() {
alert("I am an alert box!");
});
body
h1 DEMO
结果是我可以在页面上看到DEMO但是没有显示警告框。但如果我直接访问/ pagetwo,则会显示警告框。
非常感谢
//////编辑////// 这是我的app.js
var express = require('express')
, http = require('http')
, session = require('express-session');
var app = express();
var port = process.env.PORT || 8080;
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set('port', port);
app.use(express.static(__dirname + '/public'));
app.use(session({ secret: 'gdfgsdrgesrgerge', cookie: { maxAge: 60000 }}))
require('./controller/router')(app);
var server = http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
})
这是我的router.js
var express = require('express');
module.exports = function(app) {
app.get('/pageone', function(req, res){
res.render('pageone', { title: 'Welcome' });
});
app.post('/pageone', function(req, res){
res.redirect('/pagetwo');
});
app.get('/pagetwo', function(req, res){
res.render('pagetwo', { title: 'demo' });
});
};