Tan*_*aki 69 post webserver redirect http node.js
在我正在尝试编写的应用程序中,主页面(http:// localhost:8675)具有以下形式:
<form action='/?joinnew' method='post'>
<button>Start</button>
</form>
Run Code Online (Sandbox Code Playgroud)
这是server.js中的代码:
http.createServer(function(request, response) {
var root = url.parse(request.url).pathname.split('/')[1];
if (root == '') {
var query = url.parse(request.url).search:
if (query == '?joinnew') {
var newRoom = getAvaliableRoomId(); // '8dn1u', 'idjh1', '8jm84', etc.
// redirect the user's web browser to a new url
// ??? How to do. Need to redirect to 'http://whateverhostthiswillbe:8675/'+newRoom
...
}}}
Run Code Online (Sandbox Code Playgroud)
如果有办法在我不需要知道主机地址的情况下,我会很高兴,因为这可能会改变.
'http'对象是常规需求('http'),不需要('express').
ebo*_*man 110
response.writeHead(301,
{Location: 'http://whateverhostthiswillbe:8675/'+newRoom}
);
response.end();
Run Code Online (Sandbox Code Playgroud)
Dav*_*olm 76
http.get('*',function(req,res){
res.redirect('http://exmple.com'+req.url)
})
Run Code Online (Sandbox Code Playgroud)
cis*_*iso 33
OP:"我很乐意,如果有办法,我不需要知道主机地址......"
response.writeHead(301, {
Location: "http" + (request.socket.encrypted ? "s" : "") + "://" +
request.headers.host + newRoom
});
response.end();
Run Code Online (Sandbox Code Playgroud)
在 Express 中您可以使用
res.redirect('http://example.com');
从服务器重定向用户。
要包含状态代码 301 或 302,可以使用
res.redirect(301, 'http://example.com');
Run Code Online (Sandbox Code Playgroud)
如果您正在使用Express,最干净的完整答案是这样的
const express = require('express')
const app = express()
app.get('*', (req, res) => {
// REDIRECT goes here
res.redirect('https://www.YOUR_URL.com/')
})
app.set('port', (process.env.PORT || 3000))
const server = app.listen(app.get('port'), () => {})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132880 次 |
| 最近记录: |