gpt4 book ai didi

node.js - 如何使用 Seneca 和 Express 发送响应

转载 作者:搜寻专家 更新时间:2023-11-01 00:30:37 25 4
gpt4 key购买 nike

我正在使用 Seneca 路由 API 调用和 express 来提供我的文件。问题是在从 API 获取数据后,我似乎找不到将响应发送回客户端的方法。对于 express,我只会使用 res.send,但由于我在 Seneca 上下文中,所以我不能。尚未在文档中找到任何关于此问题的引用。

"use strict"; 
const bodyParser = require('body-parser');
const express = require('express');
const jsonp = require('jsonp-express');
const Promise = require('bluebird');
const path = require('path');
const seneca = require('seneca')();
const app = express();

module.exports = (function server( options ) {

seneca.add('role:api,cmd:getData', getData);

seneca.act('role:web',{use:{
prefix: '/api',
pin: {role:'api',cmd:'*'},
map:{
getData: {GET:true} // explicitly accepting GETs
}
}});

app.use( seneca.export('web') )

app.use(express.static(path.join(__dirname, '../../dist/js')))
app.use(express.static(path.join(__dirname, '../../dist/public')))

app.listen(3002, function () {
console.log('listening on port 3002');
});

function getData(arg, done){
//Getting data from somewhere....

//Here I would like to send back a response to the client.
}
}())

最佳答案

看起来与“web”相关的功能现在与单独的 express 适配器一起移动到模块“seneca-web”中。我得到了以下修改后的版本。

"use strict";

const express = require('express');
const app = express();
const seneca = require('seneca')({ log: 'silent' });
const web = require('seneca-web');

let routes = [{
prefix: '/api',
pin: 'role:api,cmd:*',
map: {
getData: {
GET: true
}
}
}];

let config = {
context: app,
routes: routes,
adapter: require('seneca-web-adapter-express')
};

seneca.add('role:api,cmd:getData', getData);
seneca.use(web, config);

function getData(arg, done){
done(null, {foo: 'bar'});
}

seneca.ready(() => {
app.listen(3002, () => {
console.log('listening on port 3002');
});
});

关于node.js - 如何使用 Seneca 和 Express 发送响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36129008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com