반응형
사용자의 브라우저 URL을 Nodejs의 다른 페이지로 리디렉션하는 방법은 무엇입니까?
작성하려는 응용 프로그램에서 기본 페이지 ( http : // localhost : 8675 )의 형식은 다음과 같습니다.
<form action='/?joinnew' method='post'>
<button>Start</button>
</form>
다음은 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
...
}}}
호스트 주소를 알 필요가없는 곳에서 할 수있는 방법이 있다면 좋겠습니다. 변경 될 수 있기 때문입니다.
'http'개체는 일반 require ( 'http')이며 require ( 'express')가 아닙니다.
response.writeHead(301,
{Location: 'http://whateverhostthiswillbe:8675/'+newRoom}
);
response.end();
http.get('*',function(req,res){
res.redirect('http://mydomain.com'+req.url)
})
OP : "호스트 주소를 몰라도 할 수있는 방법이 있다면 좋겠습니다 ..."
response.writeHead(301, {
Location: "http" + (request.socket.encrypted ? "s" : "") + "://" +
request.headers.host + newRoom
});
response.end();
Express에서는 다음을 사용할 수 있습니다.
res.redirect('http://example.com');
서버에서 사용자를 리디렉션합니다.
상태 코드 301 또는 302를 포함하려면 다음을 사용할 수 있습니다.
res.redirect(301, 'http://example.com');
res.render () 또는 res.redirect () 메서드를 사용하여 node.js express를 사용하여 다른 페이지로 리디렉션 할 수 있습니다.
예 :
var bodyParser = require('body-parser');
var express = require('express');
var navigator = require('web-midi-api');
var app = express();
app.use(express.static(__dirname + '/'));
app.use(bodyParser.urlencoded({extend:true}));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.set('views', __dirname);
app.get('/', function(req, res){
res.render("index");
});
//This reponds a post request for the login page
app.post('/login', function (req, res) {
console.log("Got a POST request for the login");
var data = {
"email": req.body.email,
"password": req.body.password
};
console.log(data);
//Data insertion code
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("college");
var query = { email: data.email };
dbo.collection("user").find(query).toArray(function(err, result) {
if (err) throw err;
console.log(result);
if(result[0].password == data.password)
res.redirect('dashboard.html');
else
res.redirect('login-error.html');
db.close();
});
});
});
// This responds a POST request for the add user
app.post('/insert', function (req, res) {
console.log("Got a POST request for the add user");
var data = {
"first_name" : req.body.firstName,
"second_name" : req.body.secondName,
"organization" : req.body.organization,
"email": req.body.email,
"mobile" : req.body.mobile,
};
console.log(data);
**res.render('success.html',{email:data.email,password:data.password});**
});
//make sure that Service Workers are supported.
if (navigator.serviceWorker) {
navigator.serviceWorker.register('service-worker.js', {scope: '/'})
.then(function (registration) {
console.log(registration);
})
.catch(function (e) {
console.error(e);
})
} else {
console.log('Service Worker is not supported in this browser.');
}
// TODO add service worker code here
if ('serviceWorker' in navigator) {
navigator.serviceWorker
.register('service-worker.js')
.then(function() { console.log('Service Worker Registered'); });
}
var server = app.listen(63342, function () {
var host = server.address().host;
var port = server.address().port;
console.log("Example app listening at http://localhost:%s", port)
});
Here in the login section, If the email and password matches in the database then the site is directed to dashbaord.html otherwise we will show page-error.html using res.redirect() method. Also you can use res.render() to render a page in node.js
반응형
'code' 카테고리의 다른 글
Android 태블릿 용 레이아웃 (0) | 2020.11.06 |
---|---|
배경 이미지 : 이미지가 작은 경우 전체 div를 채우는 방법과 그 반대의 경우 (0) | 2020.11.06 |
UITableView에서 마지막 셀의 마지막 테두리를 제거하는 방법은 무엇입니까? (0) | 2020.11.06 |
OpenSSL을 사용하여 프로그래밍 방식으로 X509 인증서 생성 (0) | 2020.11.06 |
스몰 토크의 특징 (0) | 2020.11.06 |