Anropa en action från din egen kod
ACTION(name, payload) returnerar en anropare som kör actionen med all dess validering, precis som om den kom från en route. Det andra argumentet är payload (indata). Kedja .query() och .user() för att ge den mer data och avsluta med .callback(function(err, response) {}) eller .promise() (använd med await). När datan är ogiltig är err en error builder i stället för ett undantag.
NEWACTION('Math/add', {
name: 'Add two numbers',
input: '*a:Number, *b:Number',
action: function($, model) {
$.callback({ sum: model.a + model.b });
}
});exports.install = function() {
ROUTE('GET /sum/', sum);
ROUTE('GET /sum-promise/', sum_promise);
};
function sum($) {
ACTION('Math/add', { a: '2', b: '3' }).callback(function(err, response) {
if (err)
$.invalid(err);
else
$.json(response);
});
}
async function sum_promise($) {
try {
var response = await ACTION('Math/add', { a: 10, b: 5 }).promise();
$.json(response);
} catch (err) {
$.invalid(400);
}
}