首页 > 数据库 >5-3 掌握 egg.js + 云 mongodb

5-3 掌握 egg.js + 云 mongodb

时间:2022-12-30 11:47:33浏览次数:52  
标签:const mongo mongodb js Controller egg

1 egg.js

1.1 初始化

  • 初始化和项目启动方法
# 初始化
$ mkdir egg-example && cd egg-example
$ npm init egg --type=simple # 实际上执行的是 npm i create-egg
$ npm i
# 项目启动
$ npm run dev
$ open http://localhost:7001

1.2 通过 egg.js 框架添加新的 API

app > controller > project.js

'use strict';
const Controller = require('egg').Controller;
class ProjectController extends Controller {
  // 获取项目/组件的代码模板
  getTemplate() {
    const { ctx } = this;
    ctx.body =  'get template'
  }
}
module.exports = ProjectController;

app > router.js

'use strict';
// @param {Egg.Application} app - egg application
module.exports = app => {
  const { router, controller } = app;
  router.get('/project/template', controller.project.getTemplate);
};

2 云 mongodb

2.1 本地 mongodb 调试技巧

1. 启动

  1. 在mongodb安装目录下新建mongo.config配置文件,内容如下:
  dbpath=D:\mongodb\data
  logpath=D:\mongodb\log\mongo.log
  1. 在当前位置打开cmd命令行窗口
  2. 执行命令:> mongod.exe --config mongo.config
  3. 浏览器打开 http://127.0.0.1:27017 -- 有如下显示说明启动成功

2.2 egg.js 接入 mongodb 方法

  1. 创建 mongo 实例

app > utils > mongo.js

'use strict';

const Mongodb = require('@pick-star/cli-mongodb')
const { mongodbUrl, mongodbDbName } = require('../../config/db')

function mongo() {
  return new Mongodb(mongodbUrl, mongodbDbName)
}

module.exports = mongo
  1. 设置配置数据

config > db.js

'use strict';

/** MONGODB **/
const mongodbUrl = 'mongodb://localhost:27017/zmoon-cli'
const mongodbDbName = 'zmoon-cli'

module.exports = {
  mongodbUrl,
  mongodbDbName
}
  1. 服务器 api 执行
'use strict';
const Controller = require('egg').Controller;
const mongo = require('../utils/mongo')

class ProjectController extends Controller {
  // 获取项目/组件的代码模板
  async getTemplate() {
    const { ctx } = this;
    const data = await mongo().query('project')
    ctx.body =  data
  }
}
module.exports = ProjectController;

标签:const,mongo,mongodb,js,Controller,egg
From: https://www.cnblogs.com/pleaseAnswer/p/17014493.html

相关文章

  • uglifyjs压缩.js文件为.min.js
    安装uglifyjscnpminstall-guglify-js查看版本uglifyjs--version可以正常看到版本号,安装成功 压缩js文件为.min.js(xxx:文件名)uglifyjsxxx.js......
  • 【Worker】js使用多线程实现倒计时
    tremaintime.js主要用于计算时间,放到assets目录,因为Worker需要请求获取这个文件的,要同源onmessage=function({data}){setInterval(()=>{postMessage(ini......
  • 【js逆向爬虫】-有道翻译js逆向实战
    目录​​网页分析​​​​初步代码实现​​​​逆向查找参数​​​​改写代码​​​​成果展示​​​​         我是毕加锁(锁!) 期待你的关注​​大......
  • js使用escape编码、unescape解码、
     一、js使用escape编码编码前//编码前的JSON.stringify(playitemArr)"console.error("编码前的JSON.stringify(playitemArr)");console.error(JSON.stringify(playi......
  • nodejs express multer 中文名乱码【转】
    文件上传服务器端接收的文件列表中文件名不支持中文,都是乱码,查询发现nodejs对中文支持的不好。找了半天,发现这个解决方法确实有效!!!!!核心代码//解决中文名乱码的问题f......
  • P1198 JSOI2008 最大数
    P1198JSOI2008最大数-洛谷|计算机科学教育新生态(luogu.com.cn)采用ST表维护RMQ。对于插入操作,设插入后数列长度变为\(n\),我们只需重新修改满足\(i+2^j-......
  • JS Date
    镇楼图Pixiv:torinoDate构造DateJS中Date提供了时间日期相关的操作Unix时间戳:指自1970年1月1日00:00:00UTC开始经过的毫秒数,为一整数值,这也是大多数编程语言......
  • JS高级
    this指向分析指向直接调用,指向window通过对象调用,指向对象call/apply总结:跟位置无关,跟调用方式有关。只有在执行的时候this指向才会被确定绑定规则:默认......
  • JS对象
    声明对象方式对象字面量varobj1={name:'xx',age:88,}newObject()varobj2=newObject()obj2.name='xx'new自定义类functionPerson(){}varobj3......
  • JS事件
    事件处理三种方案元素上el.onclickwindow.addEventListener(fn)事件流事件冒泡:默认情况下事件是从最内层往外传递的顺序,这个顺序就称为事件冒泡事件捕获:从外层到......