解析服务器:自定义端点/快速路由
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
声明 app
和 express 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 服务器。
在 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
声明 app
和 express 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 服务器。