Использование вызовов без отдыха с петлей (Strongloop)

Мы используем Loopback для нашего API REST и хотели бы реализовать некоторые стандартные вызовы, подобные Node Express, через тот же экземпляр, которые не маршрутизируются автоматически через инфраструктуру Loopback. Как мы можем добавить новый, отдельный маршрут, не нарушая маршрутизацию Loopback? Вот стандартный код запуска Loopback:

var loopback = require('loopback');
var boot = require('loopback-boot');

var app = module.exports = loopback();

// Bootstrap the application, configure models, datasources and middleware.
// Sub-apps like REST API are mounted via boot scripts.
boot(app, __dirname);

app.start = function() {
  // start the web server
  return app.listen(function() {
    app.emit('started');
    console.log('Web server listening at: %s', app.get('url'));
  });
};

// start the server if `$ node server.js`
if (require.main === module) {
  app.start();
}

person A2MetalCore    schedule 19.01.2015    source источник


Ответы (1)


Просто добавьте его через промежуточное ПО в server/server.js, как вы обычно делаете в типичном приложении Express.

...
// Bootstrap the application, configure models, datasources and middleware.
// Sub-apps like REST API are mounted via boot scripts.
boot(app, __dirname);

app.use('/', function(req, res) {
  res.send('hello world')
});
....
person superkhau    schedule 19.01.2015
comment
Я получаю сообщения об ошибках после добавления этого маршрута: Loopback 500 TypeError: Object #‹IncomingMessage› не имеет метода «отправить» в app.start (C:\Dev\Projects\as\as.server\server\server.js:11 :9) в Layer.handle [как handle_request] - person A2MetalCore; 20.01.2015
comment
Какую версию LoopBack вы используете? Убедитесь, что установлена ​​последняя версия. Мы исправили похожую ошибку ранее. - person Raymond Feng; 20.01.2015
comment
Только что обновился до версии LoopBack: 2.10.2. Теперь мы получаем следующую ошибку: 500 TypeError: Object #‹IncomingMessage› не имеет метода «отправить» в app.start (C:\Dev\Projects\as\as.server\server\server.js:11:9 ) в Layer.handle [как handle_request] - person A2MetalCore; 20.01.2015
comment
console.log работает, поэтому код выполняется. Однако он ломается на res.send. app.use('/', function (res, req) { console.log('привет, мир'); res.send('привет, мир'); }); - person A2MetalCore; 20.01.2015
comment
В коде, предоставленном суперхау, есть ошибка. Правильным должно быть: app.use('/', function(req, res) { res.send('hello world') }); - person Raymond Feng; 20.01.2015
comment
Упс, только что заметил, что req и res были обратными. Исправлена. - person superkhau; 20.01.2015
comment
Спасибо! Я попробую и дам вам знать. - person A2MetalCore; 20.01.2015