我是seneca的新手,现在正在尝试运行《使用Node.js开发微服务》中的示例代码,但出现了以下提示:
var seneca = require('seneca')();
seneca.add('role:api,cmd:bazinga',function(args,done){
done(null,{bar:"Bazinga!"});
});
seneca.act('role:web',{use:{
prefix: '/my-api',
pin: {role:'api',cmd:'*'},
map:{
bazinga: {GET: true}
}
}})
var express = require('express');
var app = express();
app.use( seneca.export('web') ); // <<<<<< this line might be the cause
app.listen(3000);
但我得到了一个错误,它说:
TypeError:app.use()需要中间件函数 在EventEmitter.use(/home/oem/node_modules/express/lib/application.js:209:11) 在对象。/home/oem/Documents/seneca/app.js:7:8() 在Module._compile(module.js:409:26) 在Object.Module._extensions..js(module.js:416:10) 在Module.load(module.js:343:32) 在Function.Module._load(module.js:300:12) 在Function.Module.runMain(module.js:441:10) 在启动时(node.js:139:18) 在node.js中:974:3
此外,我尝试运行从网上复制的另一个示例代码,很抱歉我只能找到链接。 但我只是复制,粘贴并尝试运行,结果得到了同样的错误。 我认为这更多是设置问题?
编辑
我仍在尝试使用此功能。 我理解的方式是,在app.use行上,我基本上只是调用seneca-web模块。 所以我做的是
app.use(require('seneca-web'))
替代
app.use( seneca.export('web') )
然后我运行了node app.js
,命令中没有出现错误,脚本成功运行。
但是当我试图从浏览器访问该模块时,出现了错误,指出找不到util,并指向seneca web文件,实际上这是来自于对seneca的调用。现在我不确定该怎么做。
我尝试将我的node版本从6.0降至4.0,但仍然遇到了同样的错误。