tổng noobie Node.js, bắt đầu chơi với mã giới thiệu từ các hướng dẫn khác nhau và các trang web và tôi nhận thấy một cái gì đó mà tôi không hiểu ...Node.js app.get không được gọi
cụ thể là, nếu tôi có chỉ số .html trong thư mục công khai/của tôi, sau đó
app.get("/", function (req, res) {
console.log("get /");
res.redirect("/test.html");
});
đơn giản là không bao giờ được gọi. Ngay sau khi tôi đổi tên index.html để index2.html sau đó phương pháp này được gọi và tôi đang chuyển hướng đến /public/test.html
đây là những gì tôi có:
var io = require('socket.io'),
express = require('express'),
MemoryStore = express.session.MemoryStore,
app = express.createServer(),
sessionStore = new MemoryStore();
app.configure(function() {
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
store: sessionStore,
secret: 'secret',
key: 'express.sid'
}));
app.use(express.static(__dirname + '/public'));
});
và phần còn lại là khá được lấy từ hướng dẫn này: http://www.danielbaulig.de/socket-ioexpress/
Sự cố tương tự xuất hiện với bất kỳ tệp nào khác. Nếu tôi có /public/test.html, sau đó khi tôi gọi
http://localhost:8201/test.html
app.get này không được gọi là:
app.get("/test.html", app.authenticateUser, function (req, res) {
console.log("get /test.html");
res.redirect("/test2.html");
});
Khi tôi loại bỏ các test.html sau đó tôi nhận được chuyển tiếp đến test2. html ...
Lý do tôi đang cố gắng chuyển hướng là nếu người dùng không đăng nhập, tôi không muốn anh ta mở index.html mà muốn chuyển tiếp anh ta đến login.html, điều này là không thể nếu chỉ mục .html tồn tại. Chỉ có "giải pháp" là làm điều đó phía khách hàng mà hút, tôi không muốn index.html để tải trong trình duyệt của khách hàng chỉ để chuyển tiếp anh ta để login.html, máy chủ nên, trong oppinion của tôi, xử lý đó.
lý do tại sao bạn đang sử dụng một tĩnh 'index.html' thay vì một cái nhìn? Dường như với tôi như bạn đang làm cho mọi việc trở nên khó khăn hơn. –