2016-06-07 6 views
0

В Parse Server, куда вы должны отправлять экспресс-маршруты? Я обнаружил, что они работают, только если я поместил их прямо в index.js, но это не может быть лучшим местом, не так ли?Parse Server: Пользовательская конечная точка/Экспресс-маршрут

Я положил это в моем облаке/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"); 

Моей консоль вывод показывает «этот файл, безусловно, бежит» на старт сервера, но когда я пытаюсь получить доступ к LOCALHOST: 1337/теста, его просто говорит: «Не могу GET/test». Если я ставлю только app.get ('/ test', ...); в index.js, он работает. Полагаю, это потому, что мне не разрешено создавать другой экземпляр express(), возможно, есть способ получить экземпляр, созданный в index.js?

ответ

3

Я понимаю, что вы задаете другой вопрос, чем мой ответ указывает. Если вы все-таки забыли app.listen, я оставлю это ниже.

Если вы собираетесь экспортировать свои маршруты в другой файл, вам необходимо передать объект app из вашего index.js в файл маршрутов.

Что я обычно делаю, это три уровня абстракции. Во-первых, у вас есть index.js, который объявляет app и express instances. Тогда у меня есть отдельный файл, скажем routeDefinitions.js (обычно я называю этот индекс и называю начальную точку после моего приложения).

Внутри routeDefinitions.js Заявляю маршруты, используя экземпляр app из index.js в результате следующее:

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; 
}; 

а затем каждый тип объект в собственном файле маршрута (скажем, у вас есть пользователи, яблоки и c ars, то каждый из этих объектов имеет свой собственный файл маршрутов).

test.js:

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


Вам нужно запустить сервер с помощью вызова app.listen См Hello World example.

Вы видите This definitely runs, потому что вы действительно обрабатываете свой скрипт, однако вы не слушаете запросы, потому что вы забыли запустить свой экспресс-сервер.

+0

спасибо, я попробую! Даже после добавления app.listen() он не работает. Причина, по которой я добавил «это определенно работает», заключается в том, что иногда node.js молча останавливает включение файлов, если есть ошибки, поэтому я хотел убедиться, что он загружает весь файл. –

+0

Gah, это не удалось, но я думаю, что это из-за Parse Server. Вот ошибка: http://textsaver.flap.tv/lists/zwo –

+0

Это действительно выглядит проблемой в Parse Server. У меня нет опыта работы с parse-сервером. Я не вижу никаких явных ошибок.Поскольку, кажется, вы используете примерный проект, я бы предложил получить чистую установку, настроив ее только с помощью необходимых опций, и как только вы начнете перемещать вещи, убедитесь, что все работает с каждым изменением. –

Смежные вопросы