loopback学习(5)--扩展API

来源:互联网 发布:自学编程网站有哪些 编辑:程序博客网 时间:2024/06/05 10:10

在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.”
}

0 0
原创粉丝点击