2016-11-10 3 views
0

У меня есть следующий код в моем исполняемом Js после необходимого импорта.Невозможно запустить seneca для покоя микросервисов

seneca.ready(function(err){ 
seneca.act('role:web', {use:{ 
    prefix: '/products', 
    pin: {area:'product', action:'*'}, 
    map: { 
     list:{GET:true} 
    } 
}}) 
var express = require('express'); 
var app = express(); 
app.use(require('body-parser').json()); 

app.use(seneca.export('web')); 
app.listen(8082); 

});

Я получаю следующее сообщение об ошибке при попытке запустить этот пример:

Сенека Fatal Error

Сообщения: Сенека: Экспорт веб-не был определен плагин.

Код: export_not_found

Детали: {ключ: 'Интернет'}

Спасибо, SUMIT

ответ

1

Я новичок, я надеюсь, что этот фрагмент будет полезен:

var seneca = require('seneca')() 
var Web = require("seneca-web"); 
var Express = require('express'); 

var app = Express(); 

var config = { 
     Routes : [ { 
      prefix : '/products', 
      pin : { 
       area : 'product', 
       action : '*' 
      }, 
      map : { 
       list : { 
        GET : true 
       } 
      } 

     } 
     ], 
     adapter : require('seneca-web-adapter-express'), 
     context : app 

    }; 

seneca.use(Web, config); 

seneca.add({ 
    role: "web", 
    area : "product", 
    action : "list" 
}, function(req, done) { 

    done(null,{result: "my list of products"}); 
}); 


seneca.ready(function(err) {  

    app.use(require('body-parser').json()); 

    app.use(seneca.export('web/context')); 
    app.listen(8082); 

    seneca.act('role:web,area:product,action:list',console.log);  

}); 

Веб-сайт Seneca недавно столкнулся с некоторыми изменениями, и вы должны использовать адаптер для экспресс-доставки. Вы можете увидеть примеры здесь on the seneca-web github page

1

Пример: index.js

const seneca = require('seneca')() 
const express = require('express')() 
const web = require('seneca-web') 
const cors = require('cors') 

var Routes = [{ 
    prefix: '/products', 
    pin: 'area:product,action:*', 
    map: {list: {GET: true}} 
}] 
express.use(cors()) 
var config = { 
    routes: Routes, 
    adapter: require('seneca-web-adapter-express'), 
    context: express, 
    options: {parseBody: true} 
} 
seneca.client() 
.use(web, config) 
.ready(() => { 
    var server = seneca.export('web/context')() 
    server.listen('8082',() => { 
    console.log('server started on: 8082') 
    }) 
}) 
seneca.add({area: 'product', action: 'list'}, function (args, done) { 
    try { 
    done(null, {response: 'Product List'}) 
    } catch (err) { 
    done(err, null) 
    } 
}) 
Смежные вопросы