使用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
新建路由
- 创建获取项目模板的接口
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
访问路径
http://127.0.0.1:7003/getTemplate