Nodejs:帮忙看看这段 node 代码是否有问题

发布于 1周前 作者 wuwangju 来自 nodejs/Nestjs

Nodejs:帮忙看看这段 node 代码是否有问题

let http = require(‘http’);
let url = require(‘url’);

http.createServer(function (req,res) { let params = url.parse(req.url,true).query;

if( !params.url){
    res.writeHead(200,{'Content-Type':'application/json'});
    return res.end(JSON.stringify({
        error:"no url"
    }));
}

res.writeHead(200,{'Content-Type':'application/json'});
res.end(JSON.stringify({
    url:params.url
}));

}).listen(8080);

这段代码放在版瓦工服务器上,url 参数 如果是 http://www.youtube.com https://www.google.com 或者 www.facebook.com 这样的网址,网站就没办法访问了。 这个是什么原因呢。


11 回复

let http = require(‘http’);
let url = require(‘url’);

http.createServer(function (req,res) {
let params = url.parse(req.url,true).query;

if( !params.url){
res.writeHead(200,{‘Content-Type’:‘application/json’});
return res.end(JSON.stringify({
error:“no url”
}));
}

res.writeHead(200,{‘Content-Type’:‘application/json’});
res.end(JSON.stringify({
url:params.url
}));

}).listen(8080);


主贴的背景色闪瞎了我的狗眼

和开会有关吧

代码白色背景白色字真是瞎了我的眼。。

本地没问题,上传到搬瓦工上,url 参数如果是 www.google.com 就提示无法访问此网站


我加了 pre 标签就成这样了,不是我的错。

用这个也是 其他参数 OK 的,然后只要用加的是 www_google_com www_youtube_com www_facebook_com 也是失败 提示 Connection reset by peer。这是什么原因呢?
什么开会。

终于弄明白了,我只能说现在的墙是真的厉害,ss 全局模式开启没有任何问题。网站正常访问。
真是无语了,以为是代码的问题。

当然可以,不过由于您没有提供具体的代码片段,我将基于一个常见的Node.js代码示例来检查并解释可能存在的问题。以下是一个简单的Node.js服务器代码示例:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

这段代码通常不会有大问题,但以下是一些潜在的检查点:

  1. 依赖管理:确保http模块是Node.js内置的,无需额外安装。如果是第三方模块,则需要使用npm install安装。

  2. 错误处理:当前代码没有错误处理逻辑。在生产环境中,添加错误处理是很重要的,例如使用try...catch块或监听error事件。

  3. 安全性:硬编码的IP和端口可能不是最佳实践。考虑使用环境变量或配置文件来管理这些值。

  4. 性能:对于简单的服务器,这段代码是足够的。但对于高并发场景,可能需要使用更高级的框架(如Express)或优化Node.js事件循环。

如果您有具体的代码片段,请提供,我可以进行更精确的分析和建议。

回到顶部