我正在遵循 parse-server 安装指南,更准确地说是尝试使用 NodeJS 和 Express 安装它。
如指南中所述,这是我设置服务器的代码:
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();
var api = new ParseServer({
databaseURI: 'postgres://postgres:myStrongPassword@localhost:5432/postgres',
appId: 'app',
masterKey: 'master',
serverURL: 'http://www.example.com:1337/parse'
});
app.use('/parse', api);
var httpServer = require('http').createServer(app);
httpServer.listen(1337, function() {
console.log('parse-server running on http://www.example.com:1337/parse');
});
但是,当尝试使用
node index.js
启动服务器时,我得到这个错误:
/root/node_modules/express/lib/router/index.js:469
throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
^
TypeError: Router.use() requires a middleware function but got a Object
at Function.use (/root/node_modules/express/lib/router/index.js:469:13)
at Function.<anonymous> (/root/node_modules/express/lib/application.js:227:21)
at Array.forEach (<anonymous>)
at Function.use (/root/node_modules/express/lib/application.js:224:7)
at Object.<anonymous> (/root/parse-test/index.js:12:5)
at Module._compile (node:internal/modules/cjs/loader:1254:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
Node.js v18.14.2
你能帮我解决这个问题吗
谢谢
根据文档 (https://github.com/parse-community/parse-server#parse-server--express),您离得不远,您需要:
app.use('/parse', api.app);
完整代码:
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();
var api = new ParseServer({
databaseURI: 'postgres://postgres:myStrongPassword@localhost:5432/postgres',
appId: 'app',
masterKey: 'master',
serverURL: 'http://www.example.com:1337/parse'
});
app.use('/parse', api.app);
var httpServer = require('http').createServer(app);
httpServer.listen(1337, function() {
console.log('parse-server running on http://www.example.com:1337/parse');
});
您可能会发现您还需要这一行:
// Start server
await api.start();