javascript - How do I redirect to another page like google using Nodejs? -
i trying number stored in short variable. on database specific shorturl matches number. if find want response full url, let's suppose www.google.com.
so when user type, instance: localhost:8888/3451 redirect www.google.com.br
app.get('/:short', function(req, res){ var short = req.params.short; shorturl.find({shorturl: short}).then(function(result){ var urlsearch = result[0]["url"]; //www.google.com res.redirect(urlsearch) //doesnt work }); });
how can this?
try code.this works charm!!!!!!. firsrt create models
folder , place file in shorturl.js
var mongoose = require('mongoose'); var schema = mongoose.schema; var url = new schema({ shorturl: { type : number }, url: { type : string } }); module.exports = mongoose.model('url', url);
next create routes
folder place file in urls.js
var express = require('express'); var bodyparser = require('body-parser'); var mongoose = require('mongoose'); var shorturl = require('../models/shorturl'); var app = express(); var url = express.router(); url.use(bodyparser.json()); url.route('/:short') .get( function(req, res){ var short = req.params.short; shorturl.find({shorturl: short}).then(function(result){ var urlsearch = result[0]["url"]; res.redirect('https://'+urlsearch) //doesnt work }); }); url.route('/num') .post(function(req,res){ shorturl.create(req.body,function(err,url){ if (err) return console.log(error); return res.send(url); }); }) app.use('/url',url); module.exports = url;
next create config file can give connections config.js
module.exports = { 'secretkey': '12345-67890-09876-54321', 'mongourl' : 'mongodb://localhost:27017/redirect' }
and create server file express.js
var express = require('express'); var passport = require('passport'); var localstrategy = require('passport-local').strategy; var config = require('./config'); var mongoose = require('mongoose'); mongoose.promise = require('bluebird'); mongoose.connect(config.mongourl); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function () { console.log("connected correctly server"); }); var app = express(); var url = require('./routes/url'); var shorturl = require('./models/shorturl'); app.use('/url',url); app.listen(3000,function(){ console.log("server listening on port 3000"); });
output : run code
node express.js
whenever want post use http://localhost:3000/url/num
, give details in json format.whenever want i.e.,redirect aany page use http://localhost:3000/url/:shrot
.here :short nothing number should passed parameter.hope helps you.
Comments
Post a Comment