我正在本地主机上的端口3434上运行一个简单的nodejs服务器
const cors = require('cors');
const app = require('express')();
const bodyParser = require('body-parser')
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());
app.get('/ping/:anystring', (req, res) => {
console.log(req.params['anystring']);
res.send({
anystring: req.params['anystring']
})
});
app.listen(3434);
,我想从我的网站执行一些ajax调用。 我试图像这样配置路由器端口转发:
- name service: mylocalserver
- porta ragnge: 3434
- local ip: 192.168.1.19
- local port: 3434
- protocol: BOTH
但是当我这样做
fetch(publicIP:3434/ping/hello).then(res => {
console.log(res);
})
我收到错误404
有人可以帮我说我在做什么错吗?
答案 0 :(得分:1)
您可以使用local tunnel 无需更改代码即可将localhost上的端口映射到Web URL
答案 1 :(得分:0)
除非创建隧道,否则您将无法访问LAN之外的本地主机服务器。我使用ngrok。
ngrok有一个npm package,但是我无法正常工作,因此只要需要测试API时,我就从终端手动启动服务器。
还需要http。
将此添加到您的app.js:
const http = require('http');
const newPort = //your port here (needs to be a different port than the port your app is currently using)
const server = http.createServer(function(req, res) {
console.log(req); //code to handle requests to newPort
res.end('Hello World);
});
app.listen(newPort, function() {
console.log(`ngrok listening on ${newPort}`);
});
现在在终端中,安装ngrok后,使用此ngrok http newPort
,其中newPort =您的端口
您可以通过转到localhost:4040
查看发送到服务器的请求(这可能会因系统而异)
要将请求发送到您的本地主机,请执行以下操作:
- name service: mylocalserver //not sure
- porta ragnge: ???
- local ip: //ngrok gives you a url in terminal when you start the server (I'm not sure if you can reference an IP)
- local port: newPort
- protocol: http //(ngrok gives you a different url for http and https)