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

适配Parse Server 6:修改Express启动代码解决Router.use运行报错

Parse Server 5升级到6后启动代码修改方案

问题背景

此前使用Parse Server 5的启动代码可正常运行,更换服务器硬件后安装最新版Parse Server 6,原代码无法启动,出现如下报错:

原启动代码

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();
var mountPath = '/...';

var api = new ParseServer({
  databaseURI: 'mongodb://...',
  appId      : '...',
  masterKey  : '...',
  serverURL  : 'http://127.0.0.1:...',
  publicServerURL: '...',
  cloud: '...',
  allowClientClassCreation: false
});
app.use(mountPath, api);

var port = ...;
var httpServer = require('http').createServer(app);
httpServer.listen(port, function() {
    console.log('parse-server running on port ' + port + '.');
});

报错信息

TypeError: Router.use() requires a middleware function but got a Object
    at Function.use (/home/ubuntu/parse/node_modules/express/lib/router/index.js:469:13)
    at Function.<anonymous> (/home/ubuntu/parse/node_modules/express/lib/application.js:227:21)
    at Array.forEach (<anonymous>)
    at Function.use (/home/ubuntu/parse/node_modules/express/lib/application.js:224:7)
    at Object.<anonymous> (/home/ubuntu/parse/armenianChurches.js:20:5)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Object.<anonymous> (/home/ubuntu/parse/node_modules/pm2/lib/ProcessContainerFork.js:33:23)

修改方案

Parse Server 6重构了核心API,new ParseServer()生成的实例不再直接作为Express中间件使用,需要调用实例的.app属性获取合法的中间件对象,具体修改点如下:

  • 将app.use(mountPath, api);修改为app.use(mountPath, api.app);
  • 确保Node.js版本满足Parse Server 6要求:最低v16.x,推荐v18.x及以上
  • 同步更新express依赖到最新稳定版,避免版本兼容问题

修改后的完整代码

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();
var mountPath = '/...';

var api = new ParseServer({
  databaseURI: 'mongodb://...',
  appId      : '...',
  masterKey  : '...',
  serverURL  : 'http://127.0.0.1:...',
  publicServerURL: '...',
  cloud: '...',
  allowClientClassCreation: false
});
// 关键修改:使用api.app作为Express中间件
app.use(mountPath, api.app);

var port = ...;
var httpServer = require('http').createServer(app);
httpServer.listen(port, function() {
    console.log('parse-server running on port ' + port + '.');
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:08:20