You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

原AWS Ubuntu服务器丢失,基于模型JSON文件重建LoopBack后端

基于模型JSON重建LoopBack后端全指南

嘿,别慌!服务器丢了确实头疼,但只要有模型JSON在手,重建LoopBack后端其实没那么难。我帮你一步步捋清楚,从环境搭建到部署AWS全搞定:

1. 先把基础环境搭起来

不管是在新的AWS Ubuntu服务器还是本地开发机,先搞定Node.js和npm——这是LoopBack的运行基础。根据你之前用的LoopBack版本选Node版本:LoopBack 3推荐Node 10+,LoopBack 4推荐Node 14+,我以适配性广的Node 16为例:

# 安装Node 16的脚本
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

装完后敲node -v和npm -v,能正常输出版本号就ok了。

2. 初始化LoopBack项目

先确认你之前用的是LoopBack 3还是4——从你给的BikeStop模型JSON来看,更偏向LoopBack 3(因为有base: "PersistedModel"这种字段),我分开说两种情况:

如果你用的是LoopBack 3:

  • 先全局装LoopBack CLI:
    npm install -g loopback-cli
    
  • 然后创建新项目:
    lb
    
    跟着CLI提示走就行:选「api-server」类型,填个项目名,默认数据源先选内存的(之后再改成AWS的数据库)。

如果你用的是LoopBack 4:

  • 全局装LoopBack 4 CLI:
    npm install -g @loopback/cli
    
  • 创建新项目:
    lb4 app
    
    按提示填项目信息,几步就完成初始化了。

3. 导入你的模型JSON

这是核心步骤,把你保存的模型文件导进去:

针对LoopBack 3:

LoopBack 3的模型都存在common/models/目录下,直接把你的BikeStop模型JSON(补全缺失的字段)存成bike-stop.json放进去:

{
  "name": "BikeStop",
  "plural": "bikeStops",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "geo": {
      "type": "geopoint",
      "required": true
    },
    "description": {
      "type": "string",
      "required": false
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

然后去server/model-config.json里注册这个模型,加这么一段:

"BikeStop": {
  "dataSource": "db",
  "public": true
}

这里的db是你初始化时选的数据源,之后我们再改成AWS的数据库。

针对LoopBack 4:

LoopBack 4用TypeScript定义模型,你可以用CLI快速创建,或者把JSON转成TS类:

  • 用CLI创建:
    lb4 model
    
    输入模型名BikeStop,然后逐个加属性:geo选GeoPoint类型并设为必填,description选string类型设为非必填就行。
  • 手动创建的话,在src/models/bike-stop.model.ts里写:
    import {Entity, model, property} from '@loopback/repository';
    
    @model({
      settings: {
        validateUpsert: true,
        plural: 'bikeStops'
      }
    })
    export class BikeStop extends Entity {
      @property({
        type: 'number',
        id: true,
        generated: true,
      })
      id?: number;
    
      @property({
        type: 'geopoint',
        required: true,
      })
      geo: {lat: number, lng: number};
    
      @property({
        type: 'string',
        required: false,
      })
      description?: string;
    
      constructor(data?: Partial<BikeStop>) {
        super(data);
      }
    }
    

4. 对接AWS数据库(比如RDS)

如果之前用的是AWS RDS(MySQL/PostgreSQL之类的),现在把数据源配置改成RDS的信息:

LoopBack 3:

打开server/datasources.json,把默认的内存数据源改成RDS的配置,比如MySQL:

{
  "db": {
    "name": "db",
    "connector": "mysql",
    "host": "你的RDS端点.rds.amazonaws.com",
    "port": 3306,
    "database": "你的数据库名",
    "user": "数据库用户名",
    "password": "数据库密码"
  }
}

然后装对应的连接器:

npm install loopback-connector-mysql --save

LoopBack 4:

用CLI创建数据源:

lb4 datasource

选对应的数据库类型(比如MySQL),然后输入RDS的连接信息,CLI会自动生成配置文件并安装好连接器,省心得很。

5. 生成数据库表(如果需要)

如果你的RDS里还没有bikeStops表,LoopBack可以自动帮你生成:

  • LoopBack 3:运行自动迁移脚本
    node server/bin/automigrate.js
    
  • LoopBack 4:直接跑迁移命令
    npm run migrate
    

6. 测试服务是否正常

启动服务看看:

  • LoopBack 3:node .
  • LoopBack 4:npm start
    然后访问API Explorer(LoopBack 3和4都是http://你的服务器IP:3000/explorer),试试BikeStop的增删改查接口,能正常调用就说明模型没问题了。

7. 部署到AWS Ubuntu服务器

如果是本地开发好再部署到AWS:

  • 把代码传到服务器(用Git拉取或者scp上传都行);
  • 服务器上装依赖:npm install;
  • 别把数据库密码硬编码!用环境变量存敏感信息;
  • 用PM2进程管理器保持服务一直运行:
    npm install -g pm2
    # LoopBack 3启动命令
    pm2 start server/server.js
    # LoopBack 4先build再启动
    npm run build
    pm2 start dist/index.js
    
  • 最后去AWS安全组里开放3000端口(或者你自定义的端口),让你的Android应用能访问后端接口。

内容的提问来源于stack exchange,提问作者Tom Dawn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:05:10