MENU

Mac 全栈开发-StrongLoop

• November 14, 2017 • 默认分类阅读设置

关于StrongLoop

StrongLoopIBM的一家子公司,StrongLoop API Platform构建于开源的LoopBack.io之上,LoopBack是一个高度可扩展的Node.js API框架。借助于LoopBack,我们可以快速创建可扩展的API和数据库映射。

StrongLoop能与很多当前主流数据库集成使用,如MongodbMysql等。

下面介绍的内容采用Mysql数据库作为示例,若使用其他数据库可对应修改

安装StrongLoop

在安装StrongLoop之前,请确保已经安装好:

  • Node
  • Xcode Commond Line Tools

在上面环境搭建好的情况下执行下面命令安装StrongLoop:

npm install -g strongloop

安装成功之后可以查看当前安装StrongLoop的版本:

slc -v

创建LoopBack应用程序

执行下面命令会在当前目录下面创建一个名为loopback-demo的应用程序:

slc loopback loopback-demo

紧接着输入程序名称和安装目录,完成程序的初始化。

运行LoopBack

在上面创建的LoopBack应用程序根目录下面执行下面命令启动应用程序:

slc run

在浏览器打开http://127.0.0.1:3000/explorer/,若能看到下面截图表示成功。

strongLoop

安装StrongLoop Mysql 连接器

在应用程序根目录下执行下面命令安装Mysql连接器,如想用其他数据库,只需要修改mysql关键词。

npm i --save loopback-connector-mysql

配置数据源

在上面已经添加了Mysql数据库支持,现在要为数据库配置数据源,下面命令创建名为“AccountDb”的新数据源:

slc loopback:datasource AccountDb

接受默认数据源名称,数据库类型这里选择Mysql。

在应用程序目录打开server/datasources.json文件,添加Mysql数据库的配置信息,示例如下:

{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "AccountDb": {
    "host": "localhost",
    "port": 3306,
    "database": "strongloop_demo",
    "username": "root",
    "password": "",
    "name": "AccountDb",
    "connector": "mysql"
  }
}

创建数据模型

下面命令为Account对象创建一个模型

slc loopback:model Account

按照提示一步步选择,对于模型的"base class",使用"PersistedModel"并选择通过REST API公开该模型。

model

对于数据模型上的属性,创建以下3个属性:

property

添加脚本来创建数据库中的模式

在项目根目录下的server文件夹创建一个bin目录,并且创建一个名为automigrate.js的文件,内容如下:

var app = require('../server');

var accounts = [
  {
    email:'foo@bar.com',
    createdAt: new Date(),
    lastModifiedAt: new Date()
  },
  {
    email:'baz@qux.com',
    createdAt: new Date(),
    lastModifiedAt: new Date()
  }
];

// this loads the accountDb configuration in ~/server/datasources.json
var dataSource = app.dataSources.AccountDb;

// this automigrates the Account model 
dataSource.automigrate('Account', function(err) {
  if (err) throw err;

  // this loads the Account model from ~/common/models/Account.json
  var Account = app.models.Account;
  var count = accounts.length;
  accounts.forEach(function(account) {
  // insert new records into the Account table
  Account.create(account, function(err, record) {
    if (err) return console.log(err);

    console.log('Record created:', record);

    count--;

      if (count === 0) {
        console.log('done');
        dataSource.disconnect();
      }
    });
  });
});

创建Mysql模式

在项目根目录下执行下面命令行运行刚才创建的autograte.js脚本在Mysql创建一个表

node server/bin/automigrate.js

再次运行应用程序

再次执行下面命令就可以看到我们上面创建的表

slc run

strongloop run

使用资源管理器页面测试API

http://127.0.0.1:3000/explorer/我们可以直接对API进行测试,单击”POST/Accounts“链接插入新数据。输入一条JSON记录并按下”Try it Out“即可看到插入的结果!

更多关于StrongLoop

详见官方文档,打不开请自行翻墙!

Last Modified: November 15, 2018
Archives QR Code Tip
QR Code for this page
Tipping QR Code