ForgeTotal.js 5
de

Total.js 5

Eine Action aus dem eigenen Code aufrufen

Total.js 5 · total5@0.0.19 actions Mit Total.js 5 ausgeführt

ACTION(name, payload) liefert einen Aufrufer, der die Action mit ihrer gesamten Validierung ausführt, genau so, als käme sie von einer Route. Das zweite Argument ist der Payload (die Eingabe). Verkette .query() und .user(), um weitere Daten mitzugeben, und schließe mit .callback(function(err, response) {}) oder .promise() ab (mit await). Sind die Daten ungültig, ist err ein Error-Builder statt einer Exception.

definitions/math.js
NEWACTION('Math/add', {
	name: 'Add two numbers',
	input: '*a:Number, *b:Number',
	action: function($, model) {
		$.callback({ sum: model.a + model.b });
	}
});
controllers/math.js
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);
	}
}