搭建一个egg项目:
代码地址:demo
结合node搭建本地服务器的框架有很多,今天选择的是egg这个框架,他是koa框架的封装形式,用起来会比较小白一点。由于本人用的是MongoDB搭建本地的数据库,所以选择了egg的egg-mongoose模块来搭建项目
安装egg的初始化框架
$ npm i egg-init -g
$ egg-init egg-example --type=simple
$ cd egg-example
$ npm i
启动项目
$ npm run dev
$ open localhost:7001
链接到本地的MongoDB:
安装mongoose
并引入到项目中
npm install egg-mongoose -S
- 在config文件中找到 config.default.js 文件
// 引入egg-mongoose
const mongoose = require('mongoose');
module.exports = appInfo => {
const config = exports = {
};
config.keys = appInfo.name + '_1539588102822_7832'; // 此处的字符是自己设定的cookie加密码
// 添加 view 配置,nunjucks是一个用来在服务器端渲染HTML的插件,用npm 安装即可
exports.view = {
defaultViewEngine: 'nunjucks',
mapping: {
'.tpl': 'nunjucks',
},
};
exports.mongoose = {
url: 'mongodb://127.0.0.1:27017/mongoTest',
// 链接到本地的MongoDB,mongoTest是我本地数据库的名字,根据自己数据库名字进行填写即可
options: {
},
};
// add your config here
config.middleware = [];
return config;
};
介绍项目目录分配
在egg 项目的app文件中,有系统默认的几个文件夹
- controller : 是用来分发路由接口请求的文件夹,指定了不同的路由对应的操作
- middleware : 是用来存放中间件的文件夹
- model : 是用来定义数据库中表单的数据类型的文件夹
- service : 是用来操作数据库的文件存放的地方,他是从controller中细化出来的,主要用来写一些sql语言,保持 Controller 中的逻辑更加简洁。
- view : 是用来存放一些需要服务器渲染的页面的
.html
或.tpl
文件的地方 - router :是用来分配接口路由的文件
- router.js :为了让router 文件夹中的路由文件看起来整洁有明确的分类,在外层用router.js这样一个文件做一个入口和索引的作用
介绍了以上的文件夹的作用,就可以开始写自己的后台项目了,每个模块对应的命名有一定的要求,比如我现在要创建一个关于学生选修课的接口,我先创建一个学生的数据库表格,我给文件命名为student
,那么我就需要在controller
,service
,model
中创建一个student.js
,入门级的使用方式可以参照 egg快速入门
第一步:分配路由:(在router.js文件中)
module.exports = app => {
const {
router, controller } = app;
router.get('/getStudentList', controller.student.list)