脚手架后端项目创建
egg.js 工程初始化
新建一个文件夹 hzw-dev-cli-server
,进入文件夹
执行以下命令,全部默认即可。
npm init egg --type=simple
npm i
npm run dev
然后会给你生成一个链接
打开会出现以下界面,就说明一个 egg
的程序启动成功了。
添加 API
新建 app\controller\project.js
// app\controller\project.js
'use strict';
const Controller = require('egg').Controller;
class HomeController extends Controller {
async index() {
const { ctx } = this;
ctx.body = [{ a: 1, b: 2 }];
}
}
module.exports = HomeController;
修改 app\router.js
// app\router.js
'use strict';
/**
* @param {Egg.Application} app - egg application
*/
module.exports = app => {
const { router, controller } = app;
router.get('/', controller.home.index);
router.get('/project', controller.project.index);
};
访问 http://127.0.0.1:7001/project
这样一个 api
就添加成功了。
然后整理一下工程,删掉没用的东西,再稍微改一下刚才写的代码。
// app\controller\project.js
const Controller = require('egg').Controller;
class HomeController extends Controller {
async getTemplate() {
const { ctx } = this;
ctx.body = 'get template';
}
}
module.exports = HomeController;
// app\router.js
module.exports = app => {
const { router, controller } = app;
router.get('/project/gettemplate', controller.project.getTemplate);
};
修改Hosts
可以使用 switchHosts
这个软件来管理本地的 host
只需要加上这样一行就可以实现用域名访问本地开发环境了
现在我们访问 http://www.duwanyu.com:7001/project/gettemplate
结果是一样的
mongodb 的使用方法
本地 mongodb 安装
👉👉 下载地址
下载完全都默认安装即可。
找到 bin
目录下,运行 mongo.exe
,出现以下画面即说明启动成功。
在浏览器中输入:http://localhost:27017/
出现如下界面即可:
第二次打开
mongo.exe
失败,在D
盘根目录新建data/db
目录,然后cmd
执行.\mongod -dbpath d:\data\db
, 问题解决。
mongodb compass
官网下载安装以后,通过 mongodb://127.0.0.1:27017
连接本地数据库
通过可视化工具添加一个数据库,并创建一个集合,然后添加一条数据。
可以看到数据库和集合已经创建好了,通过 add data
按钮添加数据
这样一条数据就插入完成了。
命令行操作
我是直接把 mongod.exe
添加到了 windows terminal
里面,这样就可以快速的使用命令行去操作数据库了。
- show dbs: 列出所有数据库。
- use hzw-cli-dev: 切换到
hzw-cli-dev
数据库 - db: 当前数据库
- show collections: 列出当前数据库下所有集合
- db.template.find(): 查询集合中的数据
egg.js 连接本地 mongodb 数据库
引入 @pick-star/cli-mongodb
工具,然后修改对应代码
npm i -S @pick-star/cli-mongodb
app\utils\mongodb.js
const Mongodb = require('@pick-star/cli-mongodb');
const { mongodbDbName, mongodbUrl } = require('../../config/db');
// 生成封装的 mongodb 实例 ,用来操作数据库
function mongo() {
return new Mongodb(mongodbUrl, mongodbDbName);
}
module.exports = mongo;
config\db.js
// 数据库地址
const mongodbUrl = 'mongodb://127.0.0.1:27017';
// 数据库名称
const mongodbDbName = 'hzw-cli-dev';
module.exports = {
mongodbUrl,
mongodbDbName,
};
app\controller\project.js
const Controller = require('egg').Controller;
const mongo = require('../utils/mongodb')();
class ProjectController extends Controller {
async getTemplate() {
const { ctx } = this;
// 查询 template 集合的数据
const data = await mongo.query('template');
ctx.body = data;
}
}
module.exports = ProjectController;
好的,结果已经拿到了。