无法为休息微服务运行seneca

时间:2016-11-10 06:43:38

标签: node.js seneca

在必要的导入之后,我在可执行文件Js中有以下代码。

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

});

尝试运行此示例时出现以下错误:

  

塞内卡致命错误

     

消息:seneca:插件尚未定义导出网站。

     

代码:export_not_found

     

详细信息:{key:'web'}

谢谢, SUMIT

2 个答案:

答案 0 :(得分: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 :(得分: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)
  }
})