【问题标题】:Unable to run seneca for rest microservices无法为其余微服务运行 seneca
【发布时间】:2017-08-17 12:34:10
【问题描述】:

在必要的导入之后,我的可执行 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' }

谢谢, 顶

【问题讨论】:

    标签: node.js seneca


    【解决方案1】:

    我是初学者,希望这个sn-p有用:

    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 web 最近遇到了一些变化,您应该使用适配器进行 express。您可以在这里查看示例on the seneca-web github page

    【讨论】:

      【解决方案2】:

      示例: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)
        }
      })
      

      【讨论】:

        猜你喜欢
        • 2016-08-06
        • 2016-08-06
        • 1970-01-01
        • 2021-10-21
        • 2020-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-15
        相关资源
        最近更新 更多