如何从node.js服务器重定向到另一个页面
这几天我一直在苦苦挣扎,我想从node.js服务器重定向到另一个页面。 网站的第一步是将我重定向到我的服务器以执行任务,但当任务完成时,我希望服务器将我重定向回我的网站。 下面是节点js服务器代码如何从node.js服务器重定向到另一个页面,node.js,mongodb,Node.js,Mongodb,这几天我一直在苦苦挣扎,我想从node.js服务器重定向到另一个页面。 网站的第一步是将我重定向到我的服务器以执行任务,但当任务完成时,我希望服务器将我重定向回我的网站。 下面是节点js服务器代码 var http = require('http'); var url = require('url'); var MongoClient = require('mongodb').MongoClient; var mongourl = "mongodb://localhost:27017/"; h
var http = require('http');
var url = require('url');
var MongoClient = require('mongodb').MongoClient;
var mongourl = "mongodb://localhost:27017/";
http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'text/html'
});
var urlQuery = url.parse(req.url, true).query;
removeItem(urlQuery.itemToRemove);
addItem(urlQuery.itemToAdd);
**// i have been trying to redirect to my html site **
**// i have got a error saying TypeError: res.redirect is not a function**
res.redirect('index.html');
res.end();
}).listen(8080);
function removeItem(remove) {
if (remove !== undefined) {
MongoClient.connect(mongourl, function (err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myquery = {
itemName: remove
};
dbo.collection("shoppingCart").deleteOne(myquery, function (err, obj) {
if (err) throw err;
console.log("deleted:" + myquery);
db.close();
});
});
}
}
function addItem(create) {
if (create !== undefined) {
MongoClient.connect(mongourl, function (err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myobj = {
itemName: create
};
dbo.collection("shoppingCart").insertOne(myobj, function (err, res) {
if (err) throw err;
console.log("document inserted:" + myobj);
db.close();
});
});
}
}
之所以出现此错误,是因为response.redirect()是一个express函数,而您的应用程序完全基于nodejs http库 您可以通过以下方式完成您提到的内容:
res.writeHead(301,{Location: 'your-location'});
res.end();
您没有正确创建服务器。尽量保持代码整洁,为index.html编写单独的API,而不是在创建服务器的内部
TypeError:res.redirect不是一个函数 这是因为
res.redirect
是一个express函数,您使用的是纯http
节点服务器
您可以考虑使用<代码> Express < /Cord>来处理重定向。
var http = require('http');
var url = require('url');
var MongoClient = require('mongodb').MongoClient;
var mongourl = 'mongodb://localhost:27017/';
// express
const express = require('express');
const app = express();
const port = 8080;
// for templating
// create `views/` folder
// and place `index.pug` and `redirected-page.pug`
app.set('view engine', 'pug');
app.get('/redirect', (req, res) => {
res.render('redirected-page');
});
app.get('/', (req, res) => {
var urlQuery = url.parse(req.url, true).query;
Promise.all([
removeItem(urlQuery.itemToRemove),
addItem(urlQuery.itemToAdd),
]).then(() => {
res.redirect('redirect');
});
});
app.use(function(err, req, res, next) {
console.error(err.stack);
res.status(500).send('Something broke!');
});
function removeItem(remove) {
if (remove !== undefined) {
MongoClient.connect(mongourl, function(err, db) {
if (err) throw err;
var dbo = db.db('mydb');
var myquery = {
itemName: remove,
};
dbo.collection('shoppingCart').deleteOne(myquery, function(err, obj) {
if (err) throw err;
console.log('deleted:' + myquery);
db.close();
});
});
}
}
function addItem(create) {
if (create !== undefined) {
MongoClient.connect(mongourl, function(err, db) {
if (err) throw err;
var dbo = db.db('mydb');
var myobj = {
itemName: create,
};
dbo.collection('shoppingCart').insertOne(myobj, function(err, res) {
if (err) throw err;
console.log('document inserted:' + myobj);
db.close();
});
});
}
}
app.listen(port, () => console.log(`Server is running at ${port}!`));
重定向时是否出现任何错误?或者您面临的问题是什么?类型错误:res.redirect不是一个函数。我的index.html在另一个页面中。请浏览Express framework,它使您的任务更简单。您还可以安装提供基本文件夹结构的express generator软件包。。是的,我现在用的是快递,很好,我明白你的意思了。我用的是express,它太棒了