【问题标题】:Localhost:3000 not opening from node.js app本地主机:3000 未从 node.js 应用程序打开
【发布时间】:2021-01-06 06:32:57
【问题描述】:

我建立了一个使用 Express、Nodemon 和 Mongoose 运行的小应用程序。

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

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

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

这是我的代码:

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 }`);
});

谁能发现我的 localhost 不适用于此应用的任何原因?感觉好像我遗漏了一些明显的东西!

【问题讨论】:

  • 您的 mongo 服务正在运行吗?你让它闲置多久了?大约 2 分钟后可能会出现超时错误,这可能会提供一些见解 - 如果是这样,请将其粘贴到此处。如果您使用调试器逐步完成您的路线,它也可能很有用。
  • 我已经弄清楚了 - res.send 在地图内部,所以它被窃听了。现在可以了,我已经把它分开了。

标签: node.js localhost


【解决方案1】:

一些想法:

  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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2022-12-24
    相关资源
    最近更新 更多