本地主机:3000 未从 node.js 应用程序打开

问题描述

我已经设置了一个使用 Express、nodemon 和 Mongoose 运行的小应用。

几个小时前,它运行良好 - 我认为我当时没有更改任何代码。如果我有,那一定是意外。

但是每当我尝试访问我的本地主机以访问此特定应用程序时,它都不会加载。它只是处于这种加载状态。没有错误出现,控制台清晰,并显示“在端口 3000 上运行”。

如果我尝试其他应用程序,它们在本地主机上运行良好,所以一定是代码 - 但考虑到没有错误消息,我什至不知道从哪里开始。

这是我的代码

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
var encrypt = require('mongoose-encryption');

require("dotenv").config();

const app = express();

mongoose.connect(process.env.MONGO_URI,{useNewUrlParser: true,useUnifiedTopology: true});

  const SubmitDebtSchema = new Schema ({
    balance: [{
      balanceDate: Date,newBalance: Number
    }],monthly: Number,date: String,autoBalance: String
  });

  const encKey = process.env.ENCKEY;
  const sigKey = process.env.SIGKEY;

  SubmitDebtSchema.plugin(encrypt,{ encryptionKey: encKey,signingKey: sigKey,excludeFromEncryption: ['autoBalance'] });

  const SubmitDebt = mongoose.model('submitdebt',SubmitDebtSchema);

  app.get("/",async (req,res) => {

  const debts = await SubmitDebt.find({ autoBalance: true });

  debts.map(debt => {

    console.log(debt.id);

  const debtDate = parseInt(debt.date);
  const finalDate = new Date(new Date().setDate(debtDate));

  console.log(finalDate);

  const todaysDate = new Date();

  console.log(todaysDate);

  const debtBalance = debt.balance[debt.balance.length - 1].newBalance;

  console.log(debtBalance);

  const debtRepayment = debt.monthly;

  console.log(debtRepayment);

  const updatedBalance = { balanceDate: new Date(),newBalance: debtBalance - debtRepayment };
  console.log(updatedBalance);

  if (todaysDate < finalDate) {
    console.log("Balance shouldn't change.");
  }

  if (todaysDate >= finalDate) {
    console.log("Balance should change");
    SubmitDebt.findById(debt._id,(err,submitdebt) => {
      if (!submitdebt) {
        console.log("Unable to find entry to edit.");
      }
      else {
        submitdebt.balance.push(updatedBalance);

        submitdebt.save().then(submitdebt => {
          console.log("Debt successfully updated.");
        })
        .catch(err => {
          console.log("Debt unsuccessfully updated.");
        });
      }
    });
  }


  res.send(debts);

  });

});

const PORT = process.env.PORT || 3000;
app.listen(PORT,() => {
    console.log(`Lemio is running on port ${ PORT }`);
});

谁能找出我的本地主机无法用于此应用程序的任何原因?感觉我遗漏了一些明显的东西!

解决方法

一些想法:

  1. 终止进程并重新开始;
  2. 检查您的端口是否正忙于其他应用程序;
  3. 检查 mongod 是否正在运行。

链接:

How To Use ps,kill,and nice to Manage Processes in Linux

How to check if port is in use on Linux or Unix

Manage mongod Processes