Javascript 反应+;Express:代理错误:无法代理来自localhstem\u错误的请求/总计
这是我上一个问题的后续问题 mypackage.json文件Javascript 反应+;Express:代理错误:无法代理来自localhstem\u错误的请求/总计,javascript,node.js,reactjs,express,Javascript,Node.js,Reactjs,Express,这是我上一个问题的后续问题 mypackage.json文件 { "name": "my-app", "version": "0.1.0", "private": true, "dependencies": { "axios": "^0.18.0", "bootstrap": "^4.1.3", "express": "^4.16.3", "mongodb": "^3.1.6", "react": "^16.5.2", "reac
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^0.18.0",
"bootstrap": "^4.1.3",
"express": "^4.16.3",
"mongodb": "^3.1.6",
"react": "^16.5.2",
"react-dom": "^16.5.2",
"react-html-parser": "^2.0.2",
"react-router-dom": "^4.3.1",
"react-scripts": "1.1.5",
"reactstrap": "^6.4.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"proxy": "http://localhost:3001"
}
My server.js:
const express = require('express');
const app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
//DB connections
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017";
// console.log that your server is up and running
app.listen(3001, () => console.log(`Listening on port 3001`));
// create a GET route
app.get('/test', (req, res) => {
var data;
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var query = { address: "Highway 37" };
dbo.collection("customers").find(query).toArray(function(err, result) {
if (err) throw err;
data = result
res.send(data[0])
db.close();
});
});
});
//A Get route for getting personal Cart information
app.get('/myCart', (req, res) => {
var total = 0;
var data = []
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("cart");
dbo.collection("items").find().toArray(function(err, result) {
if (err) throw err;
var obj = []
if(result.length >0){
for(var i = 0; i < result.length; i++ ){
var description = result[i].desc;
var price = result[i].price
if (!obj[description]) { // Add new object to result
obj[description] = {
desc: description,
total: price,
amount: 1
};
}else{
obj[description].total += price
obj[description].amount +=1
}
}
for(var key in obj){
console.log(obj[key])
data.push(obj[key])
total += obj[key].total
}
}
res.send({express: data})
db.close();
});
});
});
//a Post route for posting the added item to the data base
app.post('/add', (req, res) => {
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("cart");
var objs = req.body;
dbo.collection("items").insertMany(objs, function(err, result) {
if (err) console.log(err);
res.sendStatus(200)
console.log("Number of documents inserted: " + result.insertedCount);
db.close()
});
});
});
app.get('/wallet', (req, res) => {
var data;
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("wallet");
dbo.collection("account").findOne({}, function(err, result) {
if (err) throw err;
res.send( {express: result.amount})
db.close();
});
});
});
app.get('/total', (req, res) => {
var total = 0;
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("cart");
dbo.collection("items").find().toArray(function(err, result) {
if (err) throw err;
for(let item of result){
total += item.price;
}
res.send({express: total})
db.close();
});
});
});
app.post('/buy', (req, res) => {
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) console.log(err);
var dbo = db.db("wallet");
var myquery = { amount: {$gt: 0} }
var newquery = { $set: {amount: req.body.amount}}
dbo.collection("account").updateOne(myquery, newquery, function(err, re) {
if (err) console.log(err);
res.sendStatus(200)
console.log("Wallet updated:", req.body.amount )
db.close();
});
});
MongoClient.connect(url, { useNewUrlParser: true}, function(err, db) {
if (err) console.log(err);
var dbo = db.db("cart");
dbo.collection("items").deleteMany({}, function(err, res){
if (err) console.log(err);
res.sendStatus(200)
console.log("numer of data deleted " + res.deletedCount)
db.close();
});
});
});
app.post('/remove', (req,res) => {
MongoClient.connect(url, { useNewUrlParser: true}, function(err,db){
if (err) console.log(err);
var dbo = db.db("cart");
var myquery = { desc: req.body.name}
console.log(req.body.name)
dbo.collection("items").deleteMany(myquery, function(err,res){
if(err) console.log(err);
res.sendStatus(200)
console.log("Numer of record deleted " + res.deletedCount)
db.close();
})
})
})
const express=require('express');
常量app=express();
var bodyParser=require('body-parser');
use(bodyParser.json());
//数据库连接
var MongoClient=require('mongodb')。MongoClient;
变量url=”mongodb://localhost:27017";
//记录您的服务器是否已启动并正在运行
app.listen(3001,()=>console.log(`Listening on port 3001`));
//创建一个GET路由
app.get('/test',(req,res)=>{
var数据;
connect(url,{useNewUrlParser:true},函数(err,db){
如果(错误)抛出错误;
var dbo=db.db(“mydb”);
var query={地址:“37号公路”};
dbo.collection(“customers”).find(query).toArray(函数(err,result){
如果(错误)抛出错误;
数据=结果
res.send(数据[0])
db.close();
});
});
});
//获取个人购物车信息的获取路径
app.get('/myCart',(req,res)=>{
var合计=0;
var数据=[]
connect(url,{useNewUrlParser:true},函数(err,db){
如果(错误)抛出错误;
var dbo=db.db(“cart”);
dbo.collection(“items”).find().toArray(函数(err,result){
如果(错误)抛出错误;
var obj=[]
如果(result.length>0){
对于(变量i=0;i{
connect(url,{useNewUrlParser:true},函数(err,db){
如果(错误)抛出错误;
var dbo=db.db(“cart”);
var objs=请求主体;
dbo.collection(“items”).insertMany(objs,函数(err,result){
if(err)console.log(err);
res.sendStatus(200)
log(“插入的文档数:+result.insertedCount”);
db.close()
});
});
});
应用程序获取('/wallet',(请求,回复)=>{
var数据;
connect(url,{useNewUrlParser:true},函数(err,db){
如果(错误)抛出错误;
var dbo=db.db(“钱包”);
dbo.collection(“account”).findOne({},函数(err,result){
如果(错误)抛出错误;
res.send({express:result.amount})
db.close();
});
});
});
app.get('/total',(请求,res)=>{
var合计=0;
connect(url,{useNewUrlParser:true},函数(err,db){
如果(错误)抛出错误;
var dbo=db.db(“cart”);
dbo.collection(“items”).find().toArray(函数(err,result){
如果(错误)抛出错误;
对于(让结果项){
合计+=项目价格;
}
res.send({express:total})
db.close();
});
});
});
app.post(“/buy”,(请求、回复)=>{
connect(url,{useNewUrlParser:true},函数(err,db){
if(err)console.log(err);
var dbo=db.db(“钱包”);
var myquery={amount:{$gt:0}
var newquery={$set:{amount:req.body.amount}
dbo.collection(“account”).updateOne(myquery、newquery、function(err、re){
if(err)console.log(err);
res.sendStatus(200)
控制台日志(“钱包更新:”,请求主体金额)
db.close();
});
});
connect(url,{useNewUrlParser:true},函数(err,db){
if(err)console.log(err);
var dbo=db.db(“cart”);
集合(“项”).deleteMany({},函数(err,res){
if(err)console.log(err);
res.sendStatus(200)
console.log(“删除的数据数量”+res.deletedCount)
db.close();
});
});
});
应用程序发布('/remove',(请求,回复)=>{
connect(url,{useNewUrlParser:true},函数(err,db){
if(err)console.log(err);
var dbo=db.db(“cart”);
var myquery={desc:req.body.name}
console.log(请求主体名称)
dbo.collection(“items”).deleteMany(myquery,function(err,res){
if(err)console.log(err);
res.sendStatus(200)
console.log(“删除的记录数”+res.deletedCount)
db.close();
})
})
})
问题是,在将res.send()添加到我的代码后,由于代理错误,现在我的路由全部中断:无法代理localhstem_错误的请求/总计。这个问题以前发生过。实际上,自从我创建react+express应用程序以来,它一直是一个警告,但它只是一个警告,似乎不会影响我的应用程序,但现在它确实影响了我的应用程序。此外,post路由中的res.send()
也是导致问题的原因。在这些get路由器中,res.send()
有什么办法吗?我觉得这不会是一个小问题。我可以重新启动我的项目吗?您可以尝试在package.json中设置代理吗
"proxy": {
"/*": {
"target": "http://localhost:3001"
}
}
关于以下错误,res.sendStatus
应置于mongo连接之外
发送邮件后无法设置邮件头
摆脱代理或者添加你们都失败的东西。由于带有的add route响应无法发布/add
@aDev No holdon。后端服务的基本路径是什么?在我的回答中,您需要替换基本路径api名称来代替基本路径。我想你会用你的后端服务basepath来代替它。基本路径意味着您必须在index.js文件中设置它,如app.use(“/somepath”,routes);像这样,让我发布我的server.js。我不认为我有一条基本路线,因为这条路线就是一切route@aDev我得到了它。接受我更新的解决方案,现在就尝试同样的事情。我也从中得到了错误
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("cart");
var objs = req.body;
dbo.collection("items").insertMany(objs, function(err, result) {
if (err) console.log(err);
console.log("Number of documents inserted: " + result.insertedCount);
db.close()
});
});
res.sendStatus(200)
});