首页 > 解决方案 > 为什么我收到错误:在我的节点服务器中连接 ECONNREFUSED?

问题描述

我有一个非常简单的服务器,它运行良好,一旦我尝试添加一些导入它就停止工作(vue-axios)。我删除了导入,但我不断收到相同的错误,不允许应用程序连接到服务器。

我的文件是:

paciente.js(这是我的 mongodb 架构):

const {Router} = require("express");
const Paciente = require("../modelos/paciente");

const router = Router();

router.get("/", async (req, res) =>{
try {
    const Pacientes = await Paciente.find();
    if (!Pacientes) throw new Error("no hay Pacientes")
    res.status(200).json(Pacientes);
} catch (error) {
    res.status(500).json({message: error.message})
}
})

router.post("/predict/:id", async (req, res) =>{
const {id} = req.params;
let pacienteU = await Paciente.findById(id);
console.log(pacienteU.examen);
var data = JSON.stringify({
    "Values": [
      [
        pacienteU.examen[0],
        pacienteU.examen[1],
        pacienteU.examen[2],
        pacienteU.examen[3],
        pacienteU.examen[4]
      ]
    ]
  });
  
  var config = {
    method: 'post',
    url: 'https://apibc1.herokuapp.com/predict',
    headers: { 
      'Content-Type': 'application/json'
    },
    data : data
  };
  
  axios(config)
  .then(function (response) {
    console.log(JSON.stringify(response.data));
  })
  .catch(function (error) {
    console.log(error);
  });
})

router.post("/", async (req, res) =>{
const nuevoPaciente = new Paciente(req.body)
try {
    const paciente = await nuevoPaciente.save();
    if(!paciente) throw new Error("Hay un error al crear un Paciente");
    res.status(200).json(paciente);
} catch (error) {
    res.status(500).json({message : error.message})
}
})

router.put("/:id", async (req, res) => {

const {id} = req.params;
try {
    const respuesta = await Paciente.findByIdAndUpdate(id, req.body);
    if(!respuesta) throw new Error("Hay un error al actualizar el Paciente");
    const actualizado = { ...respuesta._doc, ...req.body}
    res.status(200).json(actualizado);
} catch (error) {
    res.status(500).json({message: error.message})
}
})

router.delete("/:id", async (req, res) => {
const {id} = req.params;
try {
    const eliminado = await Paciente.findByIdAndDelete(id);
    if(!eliminado) throw new Error("Hay un error al eliminar el Paciente");
    res.status(200).json(eliminado)
} catch (error) {
    res.status(500).json({message: error.message})
}
})

module.exports = router;

paciente.js(这是我的路由文件):

const {Router} = require("express");
const Paciente = require("../modelos/paciente");

const router = Router();

router.get("/", async (req, res) =>{
try {
    const Pacientes = await Paciente.find();
    if (!Pacientes) throw new Error("no hay Pacientes")
    res.status(200).json(Pacientes);
} catch (error) {
    res.status(500).json({message: error.message})
}
})

router.post("/predict/:id", async (req, res) =>{
const {id} = req.params;
let pacienteU = await Paciente.findById(id);
console.log(pacienteU.examen);
var data = JSON.stringify({
    "Values": [
      [
        pacienteU.examen[0],
        pacienteU.examen[1],
        pacienteU.examen[2],
        pacienteU.examen[3],
        pacienteU.examen[4]
      ]
    ]
  });
  
  var config = {
    method: 'post',
    url: 'https://apibc1.herokuapp.com/predict',
    headers: { 
      'Content-Type': 'application/json'
    },
    data : data
  };
  
  axios(config)
  .then(function (response) {
    console.log(JSON.stringify(response.data));
  })
  .catch(function (error) {
    console.log(error);
  });
})

router.post("/", async (req, res) =>{
const nuevoPaciente = new Paciente(req.body)
try {
    const paciente = await nuevoPaciente.save();
    if(!paciente) throw new Error("Hay un error al crear un Paciente");
    res.status(200).json(paciente);
} catch (error) {
    res.status(500).json({message : error.message})
}
})

router.put("/:id", async (req, res) => {

const {id} = req.params;
try {
    const respuesta = await Paciente.findByIdAndUpdate(id, req.body);
    if(!respuesta) throw new Error("Hay un error al actualizar el Paciente");
    const actualizado = { ...respuesta._doc, ...req.body}
    res.status(200).json(actualizado);
} catch (error) {
    res.status(500).json({message: error.message})
}
})

router.delete("/:id", async (req, res) => {
const {id} = req.params;
try {
    const eliminado = await Paciente.findByIdAndDelete(id);
    if(!eliminado) throw new Error("Hay un error al eliminar el Paciente");
    res.status(200).json(eliminado)
} catch (error) {
    res.status(500).json({message: error.message})
}
})

module.exports = router;

最后,这是我的 server.js 文件:

const express = require("express");
const mongoose = require("mongoose");
const app = express()
const port = process.env.PORT || 3000;
const options = {useNewUrlParser: true,  useUnifiedTopology: true};
const mongoURI = "mongodb+srv://usuario_admin:heregoesmypassword@mintic.umyfk.mongodb.net/myFirstDatabase?retryWrites=true&w=majority"
const cors = require("cors");
const morgan = require("morgan");
const bodyParser = require("body-parser");
const rutasUsuario = require("./routes/usuario");
const rutasPaciente = require("./routes/paciente");
const axios = require("axios");
app.use(axios);

app.use(cors())
app.use(morgan("tiny"));
app.use(bodyParser.json());

app.get("/", (req, res) => res.send("Hola"));
mongoose.connect(mongoURI, options).then(() => console.log("Conectado a MongoDB"))
.catch((err) => console.log(err));

app.use("/api/users", rutasUsuario);
app.use("/api/pacientes", rutasPaciente)
app.listen(port, () => console.log(`Escuchando en http://localhost:${port}`))

我很确定我正在连接到数据库,因为我在运行服务器时收到“Conectado a MongoDB”消息。对于我在互联网上发现的情况,发生此错误是因为该应用程序试图连接到一个不正确的端口。但是,由于我在运行服务器时实际上是 console.log() 端口,所以端口 3000 应该是工作的端口。我不知道错误在哪里。

标签: javascriptnode.jsmongodbexpressaxios

解决方案


推荐阅读