eggjs搭建一套后端系统

527 阅读1分钟

使用egg创建项目

egg

npm init egg命令原理

终端运行npm init egg --type=simple

是调用了 create-egg 脚手架;https://www.npmjs.com/package/create-egg

相当于命令:create-egg --type=simple

  • 动态下载:create-egg

比如 vue3 启动项目

https://www.npmjs.com/package/create-vite

# npm 6.x
$ npm init vite@latest <project-name> --template vue

# npm 7+, extra double-dash is needed:
$ npm init vite@latest <project-name> -- --template vue

$ cd <project-name>
$ npm install
$ npm run dev
// 实际上就是 启动create-vite脚手架,然后把参数传递给脚手架 =>
create-vite <project-name> -- --template vue

输入不存在的库

npm init aaa-bbb image.png

新建路由

  • 创建获取项目模板的接口

app/router.js

router.get("/getTemplate", controller.project.getTemplate);

新增controller/project

"use strict";

const Controller = require("egg").Controller;
const mongo = require("../utils/mongo");

class ProjectController extends Controller {
  async index() {
    const { ctx } = this;
    ctx.body = [{ name: "name", age: 12 }];
  }
  async getTemplate() {
    const { ctx } = this;
    ctx.body = 'getTemplata';
  }
}
module.exports = ProjectController;

搭建本地mongodb数据库

  • 搭建文档
  • 修改环境变量:vim ~/.bash_profile
  • 启动 mongodb: mongod --dbpath=/Users/rainbow/mongodb_database

连接mongodb数据

npm i @pick-star/cli-mongodb

app/utils/mongo.js

"use strict";
const Mongodb = require("@pick-star/cli-mongodb");
const data = require("../../config/db"); //定义常量
const { mongodbUrl, mongodbDbName } = data;
function mongo() {
  return new Mongodb(mongodbUrl, mongodbDbName);
}
module.exports = mongo;

config/db.js

"use strict";
// url需要加上数据库名称
const mongodbUrl = "mongodb://rainbow:123456@localhost:27017/rainbow-cli";
const mongodbDbName = "rainbow-cli";
module.exports = {
  mongodbUrl,
  mongodbDbName,
};

mongodb数据库客户端工具:Robo 3T image.png

访问路径

http://127.0.0.1:7003/getTemplate

image.png