You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Node.js代码中请求URL相关逻辑的问题?

问题解决:添加命令行输入交互逻辑

你的代码仅实现了HTTP服务器的基础响应功能,缺少命令行输入交互的逻辑,所以服务器启动后不会触发输入URL的提示。以下是修改后的代码,满足你的需求:

var port = 5050;
var http = require('http');
var readline = require('readline');

// 创建命令行输入交互接口
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

let targetUrl = ''; // 存储用户输入的待解析URL

var server = http.createServer(function (req, res) {
  // 忽略favicon和根路径的无效请求日志
  if (req.url !== '/favicon.ico' && req.url !== '/') {
    console.log('Requested URL: ' + req.url);
  }

  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
  // 页面根据是否有输入URL返回对应内容
  if (targetUrl) {
    res.write(`解析的URL是:"${targetUrl}"`);
  } else {
    res.write('请先在命令行输入待解析的URL');
  }
  res.end();
});

server.listen(port, function () {
  console.log('Server running at http://localhost:5050/');
  // 服务器连接建立后,触发命令行输入提示
  rl.question('请输入待解析的URL:', (inputUrl) => {
    targetUrl = inputUrl.trim();
    console.log(`已记录待解析URL:${targetUrl}`);
    // 若需要重复输入URL,可注释掉下面的close方法
    // rl.close();
  });
});

关键修改说明:

  • 引入Node.js内置的readline模块,实现命令行的输入输出交互
  • 服务器启动成功后,通过rl.question()触发输入URL的提示
  • 用变量targetUrl存储用户输入的内容,HTTP请求响应时将其展示在页面上
  • 设置响应头字符编码为utf-8,避免中文显示乱码

运行效果:

  1. 启动程序后,命令行先显示服务器连接成功提示,随即弹出输入URL的请求
  2. 输入URL并回车后,命令行提示已记录该URL
  3. 访问http://localhost:5050/,页面会显示你输入的待解析URL

内容的提问来源于stack exchange,提问作者Sara01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:27:04