node.js - 在 NodeJS 应用程序上接收“连接被拒绝”以在 Windows 10 上进行外部连接
问题描述
我在尝试连接到运行 REST API 的 NodeJS 服务器时收到“连接被拒绝”错误。我的环境是 Windows 10。
我尝试了许多唯一的解决方案,但无济于事。
- curl & postman 与本地主机一起工作,但不是外部的
- nstat 显示正在监听 0.0.0.0:8143
- 目前只是测试获取,而不是发布
- windows防火墙打开端口
- Ngrok 工作(虽然我读过生产使用不推荐)
- 使用以下外部:http://xxx:8143/run/
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;
解决方案
解决方法如下:
- 在路由器上将端口转发设置为我的 IP 地址 (192.168.0.198:8143)。
- 为我的机器的 IP 设置静态租约,以确保端口转发继续工作。
现在我的外部 IP (xxx:8143) 指向直接转发到我的机器 IP。
我猜还有另一种解决方案不涉及配置我的路由器,但我还没有找到。
推荐阅读
- ios - Apache Kafka - iOS 制作人
- ethereum - 如何通过从 testrpc 中选择密钥来实现以太坊中的非对称加密和解密技术
- elasticsearch - Logstash 无法连接安全 (ssl) 弹性搜索集群
- html - 为什么我的 Google 地图标记宽度受到限制?
- django - HyperlinkedModelSerializer中的django外键什么类型的值
- ionic-framework - 使用 ionic cordova 模拟 android –lc 加载图像
- azure - 第二个 ConversationUpdate 事件将跟随在用户第一次输入的后面?
- java - Firebase 数据库奇怪的排序
- python - 如何在 python 的列表理解中包含布尔条件?
- python - 嵌套列表:计数、最大值和最小值