当前位置: 首页 > news >正文

Node.js 开发的简单 Web 服务器代码

步骤 1:创建项目文件

新建名为 app.js 的文件,添加以下代码:

// 1. 导入内置 http 模块
const http = require('http');

// 2. 创建服务器实例
const server = http.createServer((req, res) => {
  // 设置响应头
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
  
  // 返回响应内容
  res.end('欢迎学习nodejs课程');
});

// 3. 监听端口
const PORT = 8090;
server.listen(PORT, () => {
  console.log(`服务器运行在 http://localhost:${PORT}`);
});

步骤 2:使用 WebStorm 运行

  1. 打开项目

    • 启动 WebStorm

    • 选择 File > Open,定位到包含 app.js 的目录

  2. 运行配置

    • 右键点击 app.js 文件

    • 选择 Run 'app.js'

    • 或使用快捷键 Ctrl + Shift + F10 (Windows/Linux) / ^ + R (Mac)

  3. 查看输出

    • 下方 Run 控制台将显示:

       

步骤 3:访问页面

浏览器访问:http://localhost:8090


关键代码解释

代码部分功能说明
require('http')导入 Node.js 内置 HTTP 模块
http.createServer()创建服务器实例
res.writeHead(200, {...})设置 HTTP 状态码和响应头
res.end()结束响应并发送内容
server.listen(8090)绑定端口并启动监听

常见问题解决

1.端口冲突

错误提示:Error: listen EADDRINUSE: address already in use :::8090

解决方案:

  • 关闭占用端口的程序:kill -9 $(lsof -ti:8090) (Mac/Linux)

  • 修改代码中的端口号

2.中文乱码

  • 确保响应头包含 charset=utf-8

    res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });

3.修改响应内容

  • 修改 res.end() 中的字符串即可更新页面显示


WebStorm 调试配置

  1. 点击工具栏 Add Configuration ➕

  2. 选择 Node.js

  3. 配置项:

  • Node interpreter: 确保选择正确 Node 版本
  • JavaScript file: 选择 app.js

  • 使用 Debug 模式运行(快捷键 Shift + F9

http://www.dtcms.com/a/125227.html

相关文章:

  • 10分钟做了一个投资回报计算器,欢迎大家使用
  • 第二届数字图像处理与计算机应用国际学术会议(DIPCA 2025)
  • 城电科技 | 光伏太阳花:碳减排路上的璀璨新光光伏智慧花
  • 修图自由!自建IOPaint服务器,手机平板随时随地远程调用在线P图
  • Go学习系列文章声明
  • 《AI大模型应知应会100篇》第9篇:大模型的推理能力:原理与实现
  • 排序算法详细介绍对比及备考建议
  • 数据仓库元数据的管理
  • 【js】nvm1.2.2 无法下载 Node.js 15及以下版本
  • 支持iOS与Android!SciChart开源金融图表库助力高效开发交易应用
  • C++字符串操作详解
  • Dify什么?Dify 零门槛打造专属 AI 应用
  • Rust重定义数据库内核:从内存安全到性能革命的破界之路
  • 国内MCP服务有哪些?MCP服务器搜索引擎哪家好?
  • 深入学习LLM开发 第十三章:智能代理(Agents)基于LangGraph实现
  • 【嵌入式硬件】LAN9253说明书(中文版)
  • 刘哲尔:新生代演员的多元“征途”
  • python-65-常用的数据可视化库和框架
  • 每日算法-250411
  • 【网络原理】网络通信基础
  • 局域网内文件共享的实用软件推荐
  • CD7 CAR-T细胞治疗移植后复发伴髓外病灶的急性髓系白血病
  • 【Raqote】 1.2 路径填充ShaderClipMaskBlitter结构体(blitter.rs)
  • 小星星-第16届蓝桥第3次STEMA测评Scratch真题第4题
  • 琥珀扫描 2.0.5.0 | 文档处理全能助手,支持扫描、文字提取及表格识别
  • 为什么drupal7的分类中的术语增加了日语版本,但是日语页面显示的还是英文的
  • C语言 |位域结构体
  • 算法基础模板
  • pandas.DataFrame.dtypes--查看和验证 DataFrame 列的数据类型!
  • 轻量级设备驱动框架设计与实现