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

如何用netlify-cli手动部署Node.js到Netlify?部署遇困求助

解决Netlify手动部署Node.js Express应用问题

关键修改与部署步骤

1. 调整Express应用启动逻辑

Netlify不通过app.listen()启动服务,需导出Express实例。修改index.js:

const express = require('express');
const cors = require('cors');

const app = express();

app.use(express.json());
app.use(cors());

app.get('/test', (req, res) => {
  res.send('Connected to backend server!')
})

const route = require('./routes');
app.use('/income', route.incomeAPI);
app.use('/expense', route.expanseAPI);

// 移除app.listen,改为导出应用实例
module.exports = app;

2. 添加Netlify配置文件

在项目根目录新建netlify.toml,配置构建规则与路由重定向:

[build]
  functions = "functions"
  command = "npm install"

[[redirects]]
  from = "/*"
  to = "/.netlify/functions/server"
  status = 200

3. 创建Netlify函数入口

在项目根目录新建functions/server.js,作为服务入口适配Netlify函数环境:

const serverless = require('serverless-http');
const app = require('../index');

exports.handler = serverless(app);

4. 安装适配依赖

执行命令安装serverless-http,用于衔接Express与Netlify函数:

npm install serverless-http --save

5. 执行部署

  • 登录Netlify CLI:netlify login
  • 初始化项目:netlify init(按提示选择手动部署、设置站点信息)
  • 正式部署:netlify deploy --prod

排查要点

  • 确认package.json的dependencies包含所有依赖包(express、cors、serverless-http等)
  • 检查routes目录下的文件导出格式,确保incomeAPI和expanseAPI是合法的Express Router实例
  • 部署失败时查看Netlify控制台的构建日志,定位依赖安装或代码报错问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 01:49:53