ForgeTotal.js 5
bg

Total.js 5

Извикване на действие от собствения ви код

Total.js 5 · total5@0.0.19 actions Изпълнено с Total.js 5

ACTION(name, payload) връща извикващ обект, който изпълнява действието с цялото му валидиране, точно както ако идва от маршрут. Вторият аргумент е payload (входът). Свържете .query() и .user(), за да му дадете още данни, и завършете с .callback(function(err, response) {}) или .promise() (използвайте го с await). Когато данните са невалидни, err е error builder вместо изключение.

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);
	}
}