egg.js+mongodb快速入门

83 阅读2分钟

eggjs官方文档

快速初始化

mkdir mj-cli-dev-server && cd mj-cli-dev-server
npm init egg --type=simple
npm i

npm init egg --type=simple这个命令相当于下面两个命令;

npm i -g create-egg
create-egg

启动

npm i
npm run dev
open http://localhost:7001

创建app/controller/project.js

"use strict";

const Controller = require("egg").Controller;

class ProjectController extends Controller {
  index() {
    const { ctx } = this;
    ctx.body = "your project";
  }
}

module.exports = ProjectController;

在router.js中添加路由;

module.exports = (app) => {
  const { router, controller } = app;
  router.get("/", controller.home.index);
  router.get("/project", controller.project.index);
};

再次执行npm run dev

image.png

# Mac OSX 平台安装 MongoDB

接下来我们使用 curl 命令来下载安装:

# 进入 /usr/local
cd /usr/local

# 下载
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz

# 解压
sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz

# 重命名为 mongodb 目录
sudo mv mongodb-osx-x86_64-4.0.9/ mongodb

详细安装步骤参考文档
通过终端打开mongodb:

下载Studio 3T客户端:

Studio 3T的使用简介:

113.jpg

在collections上右键选择insert Index;

114.jpg

点击JSON,就可以编写需要插入的数据了;不知道为什么插入不成功,这个工具不会用,我选择直接用命令行;


cd /usr/local/mongodb/bin 

./mongo

// 列出所有数据库
show dbs 

// 切换到local数据库
use local

// 当前数据库
db

// 列出当前数据库下所有的集合
show collections

// 查询集合中的数据
db.project.find()

// 插入文档
db.project.insert({title: 'MongoDB 教程',
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

egg.js接入mongodb的方法

cnpm i -S @pick-star/cli-mongodb

首先创建config/db.js

"use strict";

/**
 * mongodb配置信息
 */
const mongodbUrl = "mongodb://127.0.0.1:27017";
// 数据库名称
const mongodbName = "local";

module.exports = {
  mongodbUrl,
  mongodbName,
};

接着创建app/utils/mongo.js

"use strict";

const Mongodb = require("@pick-star/cli-mongodb");
const { mongodbUrl, mongodbName } = require("../../config/db.js");

function mongo() {
  return new Mongodb(mongodbUrl, mongodbName);
}

module.exports = mongo;

修改app/controller/project.js

"use strict";

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

class ProjectController extends Controller {
  async getTemplate() {
    const { ctx } = this;
    // project是collections的名字
    const data = await mongo().query("project");

    ctx.body = data;
  }
}

module.exports = ProjectController;

这样eggjs就成功连接上了mongodb;

image.png