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

Node.js创建服务器时http.createServer与server.listen的执行顺序是怎样的?

Node.js HTTP 服务器相关问题解答

执行顺序说明

http.createServer() 会优先于 server.listen() 执行。
Node.js 主线程的普通代码是同步逐行执行的,你必须先调用 http.createServer() 创建拿到HTTP服务器实例,才能调用这个实例上的 listen 方法启动监听,执行顺序和代码的书写顺序完全一致。

createServer 回调触发时机

http.createServer 中传入的回调是请求处理函数,不会在创建服务的时候立刻执行,而是会在服务器成功启动监听后,每收到一个新的HTTP请求时触发一次。
这个回调默认会被注入两个参数:

  • req:存储了当前HTTP请求的所有相关信息,比如请求方法、请求路径、请求头、请求体等
  • res:用来构造和返回当前请求对应的响应,比如设置状态码、响应头、返回响应内容等

示例代码参考

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');
});

// 启动服务监听,监听成功后会执行传入的回调打印启动日志
server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:36:04