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

Hapi.js服务器无法启动,报错server.connection不是函数

解决Hapi.js报错:server.connection is not a function

嘿,这个问题我之前也碰到过!原因很简单——你用的是Hapi.js v17及以上版本,而server.connection()这个方法在v17的大版本更新里被彻底移除了,官方把服务器初始化的逻辑做了简化。

给你改好的可用代码:

const Hapi = require('hapi');

// 直接在创建服务器实例时配置端口和主机
const server = Hapi.server({
  port: 3000,
  host: 'localhost'
});

// 首页路由配置
server.route({
  method: 'GET',
  path: '/',
  handler: (request, h) => {
    // 新版Hapi不用reply,直接返回内容就行
    return 'Hello World';
  }
});

// 启动服务器的异步写法(新版推荐)
const startServer = async () => {
  try {
    await server.start();
    console.log(`Server started at: ${server.info.uri}`);
  } catch (err) {
    console.error('服务器启动失败:', err);
    process.exit(1);
  }
};

startServer();

几个关键的改动点:

  • 删掉了单独的server.connection()调用,把端口、主机配置直接放进Hapi.server()的参数里
  • 路由handler的第二个参数从reply换成了h(Hapi v17+的新API,reply被废弃了,现在直接返回响应内容就好)
  • 启动服务器用了async/await的异步写法,这是新版Hapi推荐的方式,比原来的回调逻辑更清晰

如果你非要沿用旧版写法(不推荐,因为旧版本已经停止维护),可以重新安装指定版本的Hapi:

npm install hapi@16 --save

不过还是建议用新版的写法,后续兼容性和维护性会更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:23:21