解析服务器:自定义端点/快速路由

Parse Server: Custom endpoint / Express route

在 Parse Server 中,您应该将快速路由放在哪里?我发现只有将它们直接放在 index.js 中它们才有效,但那不是最好的位置,对吗?

我把这个放在我的 cloud/main.js:

var express = require('express');
var app = express();

app.listen();

app.get('/test', function(req, res) {
    console.log("working?");
    res.status(200).send('working?');
});

console.log("this file definitely runs");

我的控制台输出在启动服务器时显示 "this file definitely runs",但是当我尝试访问 localhost:1337/test 时,它只显示 "Cannot GET /test"。而如果我只放 app.get('/test', ...);在 index.js 中,它有效。我想这是因为不允许我创建另一个 express() 实例,也许有办法获取在 index.js?

中创建的实例

我知道你问的问题与我的回答所指的不同。如果你真的忘记了 app.listen 我会把它留在下面。

如果您要将路线导出到其他文件,您需要将 app 对象从 index.js 传递到路线文件。

我平时做的是三层抽象。首先,您有 index.js 声明 appexpress instances。然后我有一个单独的文件,比如routeDefinitions.js(我通常称这个索引并在我的应用程序之后命名起点)。

routeDefinitions.js 中,我使用 index.js 中的 app 实例声明路由,结果如下:

app.js:

var express = require('express');
var app = express();

var routes = require('./routeDefinitions')(app);

routeDefinitions.js:

var test = require('./test');

module.exports = function(app) {
    app.get('/test', test.working);

    return app;
};

然后将每种类型的对象都放在自己的路线文件中(假设您有用户、苹果和汽车,那么这些对象中的每一个都有自己的路线文件)。

test.js:

module.exports.working = function(req, res) {
    console.log("working?");
    res.status(200).send('working?');
};


您需要通过调用 app.listen 来启动您的服务器 请参阅 Hello World example

你看到 This definitely runs 因为你确实在处理你的脚本,但是你没有监听请求,因为你忘记启动你的 express 服务器。