Ich benutze Seneca, API-Aufrufe zu routen und express, um meine Dateien zu dienen. Das Problem ist, ich kann anscheinend keine Möglichkeit finden, eine Antwort zurück an den Client zu senden, nachdem meine Daten von der API abgerufen wurden. Mit Express würde ich einfach res.send
verwenden, aber da ich im Seneca-Kontext bin, kann ich nicht. In der Dokumentation wurde kein Verweis auf dieses Problem gefunden.So senden Sie eine Antwort mit Seneca und Express
"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.
}
}())
Funktioniert! Es ist viel einfacher als erwartet. – Yuval
Hallo, wie kommt es, wenn ich versuche, dieses Skript von dir zu starten, bekomme ich einen Fehler, der sagt "app.use() benötigt Middleware-Funktionen"? –
gleich hier, die seneca beginnt mit dem gleichen fehler endet – Ben