首页 > 解决方案 > 在 NodeJS 应用程序上接收“连接被拒绝”以在 Windows 10 上进行外部连接

问题描述

我在尝试连接到运行 REST API 的 NodeJS 服务器时收到“连接被拒绝”错误。我的环境是 Windows 10。

我尝试了许多唯一的解决方案,但无济于事。

let express = require('express');
let app = express();
var cors = require('cors')

let bodyParser = require('body-parser');
const logger = require('morgan')
let router = require('./routes/run.route');


// connection configure ---
const dbURI = 'mongodb://localhost:27017';
const dbName = 'rundata';

const Mongoose = require("mongoose");
Mongoose.connect(`${dbURI}/${dbName}`);


// app configure
app.use(cors())
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({"extended" : false }));
app.use("/", router);
app.use(logger('dev', {skip: function(req, res) { return true; }}));

app.listen('8143','0.0.0.0',()=>{
    console.log("server is listening on 8143 port");
})
const express = require('express');
const router = express.Router();

const Run = require("../schemas/run.model");

router.route("/run")
    .get(function(req, res) {
        res.json({msg: 'This is CORS-enabled for all origins!'})
    })
    .post(function(req, res) {
        
        let data = req.body;
        data.ip = req.headers['x-forwarded-for'] || req.socket.remoteAddress || null;
        
        let query = {'runId': req.body.runId}
        
        Run.findOneAndUpdate(query, data, {upsert: true}, function(err) {
            res.json(err ?
                {"error" : true, "message" : err.message} :
                {"error" : false, "message" : "Data added"}
            );
        });

    });

module.exports = router;

标签: node.jsexpressnetwork-programming

解决方案


解决方法如下:

  • 在路由器上将端口转发设置为我的 IP 地址 (192.168.0.198:8143)。
  • 为我的机器的 IP 设置静态租约,以确保端口转发继续工作。

现在我的外部 IP (xxx:8143) 指向直接转发到我的机器 IP。

我猜还有另一种解决方案不涉及配置我的路由器,但我还没有找到。


推荐阅读