【问题标题】:Cors proxy issues within server.js file(react, express,sql)server.js 文件中的 Cors 代理问题(react、express、sql)
【发布时间】:2020-04-24 22:02:50
【问题描述】:

我已经使用 mssql 和 express 制作了一个基本的全栈网站。最初 get 路线有效,但在实施 post 路线后,它们已停止。

我相信我收到了一个 cors 错误。

Proxy error: Could not proxy request /admin-view-users from localhost:3000 to http://localhost:5000/.
[1] See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).

我的 server.js

const express = require("express");
const sql = require("mssql");
var cors = require("cors");
const path = require("path");
var bodyParser = require("body-parser");
const port = process.env.PORT || 5000;

const app = express();
app.use(cors());

app.use(express.json());

const config = {
  user: "sas",
  password: "Mypassword456",
  server: "DEVSQL_2014", // You can use 'localhost\\instance' to connect to named instance
  database: "TestDBWebsite"
};

//AdminView users just pulls the users from the database

app.get("/admin-view-users", cors(), function(req, res) {
  // connect to your database
  sql.connect(config, function(err) {
    if (err) console.log(err);

    // create Request object
    var request = new sql.Request();

    // query to the database and get the records
    request.query("select * from Users2 ", function(err, recordset) {
      if (err) console.log(err);

      // send records as a response

      res.json(recordset);

      res.end();
    });
  });
});

app.get("/admin-view-users", function(req, res) {
  // connect to your database
  sql.connect(config, function(err) {
    if (err) console.log(err);

    // create Request object
    var request = new sql.Request();

    // query to the database and get the records
    request.query("select * from Users2 ", function(err, recordset) {
      if (err) console.log(err);

      // send records as a response

      res.json(recordset);

      res.end();
    });
  });
});

app.get("/user-questions", function(req, res) {
  // connect to your database
  sql.connect(config, function(err) {
    if (err) console.log(err);

    // create Request object
    var request = new sql.Request();

    // query to the database and get the records
    request.query("select * from Questions ", function(err, recordset) {
      if (err) console.log(err);

      // send records as a response

      res.json(recordset);
    });
  });
});

//

var jsonParser = bodyParser.json();

app.use(express.bodyParser());

app.post("/admin-Add-Users", jsonParser, function(request, response) {
  var email = req.body.email;
  var password = req.body.password;

  var request = new sql.Request();
  // query to the database and get the records

  console.log(email, password); // your JSON
  // echo the result back
  console.log(request.body);

  request.query(
    "insert into Login (email, password) values ('" +
      email +
      "','" +
      password +
      "')",
    function(err, recordset) {
      if (err) console.log(err);
    }
  );
  response.send({ message: "Success" });
});

app.listen(port, () => `Server running on port ${port}`);

我已经包含了“app.use(cors());”我认为会解决这个问题,但事实并非如此。

如果可以的话请指教。

【问题讨论】:

    标签: node.js sql-server reactjs express cors


    【解决方案1】:

    我首先想到的是 CORS 的双重用途。

    您将它放在中间件堆栈的顶部,然后在这里再次调用它:

    app.get("/admin-view-users", cors(), function(req, res) {
    

    请尝试只使用一次:

    https://www.npmjs.com/package/cors

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-12
      • 2020-03-26
      • 2019-03-14
      • 1970-01-01
      • 2016-05-05
      • 2019-01-12
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多