在LoopBack中,有一个连接到自定义的REST端点的Node方法叫remote method(远程方法)
添加一个远程方法
在前面生成CoffeeShop模型完成后,项目的models目录中会生成coffee-shop.json和coffee-shop.js两个文件,要添加远程方法就需要在coffee-shop.js文件中添加相应的方法。
1.打开/common/models,你会看见coffe-shop.js文件
2.打开coffee-shop.js文件,可以看到一个空的方法
'use strict';
module.exports = function(Coffeeshop) {
};
3、将以下的代码添加到这个方法中,使用远程方法去扩展这个模型的行为
module.exports = function(CoffeeShop) {
CoffeeShop.status = function(cb) {
var currentDate = new Date();
var currentHour = currentDate.getHours();
var OPEN_HOUR = 6;
var CLOSE_HOUR = 20;
console.log('Current hour is ' + currentHour);
var response;
if (currentHour > OPEN_HOUR && currentHour < CLOSE_HOUR) {
response = 'We are open for business.';
} else {
response = 'Sorry, we are closed. Open daily from 6am to 8pm.';
}
cb(null, response);
};
CoffeeShop.remoteMethod(
'status',
{
http: {path: '/status', verb: 'get'},
returns: {arg: 'status', type: 'string'}
}
);
};
这段代码定义了一个简单的远程方法,一个不带参数的stauts的方法,检查当前时间并返回一个json格式的状态消息。当然在实践中你可以使用远程方法做更多有趣和复杂的事,比如在数据持久化到数据库之前输入数据。您还可以更改您调用远程方法的途径,并定义复杂的参数和返回值。请参阅远程方法(远程方法)的所有细节。
执行slc run,在http://localhost:3000/exploer中可以看到一个新增的方法GET/CoffeeShop/status
点击Try it Out,会返回以下json数据:
{
“status”: “Open for business.”
}