讓我開始說我是Node.js中的完全新手。我在這裏閱讀了很多與我的問題相關的帖子,但他們要麼不適合我,要麼我不瞭解解決方案。 Nodes.js對我來說是相當棘手的時刻:/在Node.js Express中發佈和重定向
因此,這裏是我的問題/問題:
我試圖找出POST操作和重定向程序,我想我失去了一些東西因爲它不能正常工作。
我正在寫一個單頁的應用程序,所以所有的頁面實際上是一個頁面分爲幾個部分。
說我有一個HTML表單,像這樣(這是在登錄部分):
<form method="post" action="/login">
<input name="email" type="email" id="signin-mail">
<input name="pass" type="password" id="signin-username">
<input type="submit" value="send">
</form>
這裏是我的Node.js服務器代碼:
var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var app = express();
app.use(bodyParser());
//
app.get('/login', function(req, res){
console.log('GET /')
var html = fs.readFileSync('index.html');
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(html);
});
//
app.post('/login', function(req, res){
console.log('POST /');
console.dir('email: ' + req.body.email + ' pass: ' + req.body.pass);
res.status(200).redirect("/index.html#index");
});
app.use(express.static(__dirname + '/'));
port = 8888;
app.listen(port);
console.log('Listening at http://localhost:' + port)
現在,基本上,我不除了閱讀表格的內容之外,不想做任何事情,並且 將用戶重定向到另一頁面。我在終端上看到表單數據被正確解析,並且打印出用戶名和密碼,但不是重定向到頁面的#index部分,而是將地址更改爲localhost/login。
有人可以說明接收郵件,提取數據和重定向用戶的整個過程嗎?
謝謝!
感謝您的回覆! 其實我希望它重定向到地址: 127.0.0.1:8888/index.html#index 但我得到重定向到地址: 127.0.0.1:8888/login 而這就是我的問題(因爲它不存在)。當你運行它時,你會被重定向到第一個地址? – elmekiesIsrael
我得到重定向到本地主機/ index.html#登錄 – dlaxar
只是一個猜測:控制檯中是否有任何錯誤?錯誤可能會阻止node.js進入重定向 – dlaxar