【开篇】如果我们将所有的应用程序开发的代码都写在app.js文件中,这个文件会很庞大,也会不利于接下来的开发
【模块划分】前台模块、后台管理模块、API模块
使用app.use进行模块划分(app.js中)
app.use('/admin',require('./routers/admin'));
app.use('/api',require('./routers/api'));
app.use('/',require('./routers/main'));
1.在文件夹routers中分别建立admin.js、api.js和main.js
2.现在我们在admin.js中写入代码
var express = require('express');
var router =express.Router();//Express.js 4.0 有加入一個新的 Router 功能,它就像一個迷你的應用程式,可以讓應用程式內部的路由撰寫更方便、更有彈性。添加非路由中间键
//监听以/admin开头的路由,不需要再写/admin/user了,
router.get('/user',function(req,res,next) {
res.send('User');
})
//每一个node.js执行文件,都自动创建一个module对象,同时,module对象会创建一个叫exports的属性,初始化的值是 {}
//module.exports属性可以被赋予一个新的值(例如函数或对象),赋值给 `exports` 不会修改模块,必须使用 `module.exports`
// nodejs模块中的exports对象,你可以用它创建你的模块。例如:(假设这是rocker.js文件)
//
// exports.name = function() {
// console.log('My name is Lemmy Kilmister');
// };
//
// 在另一个文件中你这样引用
//
// var rocker = require('./rocker.js');
// rocker.name(); // 'My name is Lemmy Kilmister'
// 其实,Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。
module.exports = router;
3.然后api.js,admin.js雷同
var express = require('express');
var router =express.Router();
router.get('/',function(req,res,next) {
res.send('Admin-user');
})
module.exports = router;
4.前端路由+模块
【main模块】
/ | 首页 |
/view | 内容页 |
【api模块】
/ | 首页 |
/register | 用户注册 |
/login | 用户登录 |
/comment | 评论获取 |
/comment/post | 评论提交 |
【admin模块】
/ | 首页 | |
用户管理 | /user | 用户列表 |
分类管理 | /category | 分类列表 |
/category/add | 分类增加 | |
/category/edit | 分类修改 | |
/category/delete | 分类删除 | |
文章内容管理 | /article | 内容列表 |
/article/add | 内容添加 | |
/article/edit | 内容修改 | |
/article/delete | 内容删除 | |
评论内容管理 | /comment | 评论列表 |
/comment/delete | 评论删除 |
5.功能开发顺序
功能模块开发顺序:
用户(后台添加数据,需要管理员数据添加数据)、栏目(后台管理+前台展示)、内容、评论
编码顺序:
通过Schema定义设计数据存储结构(数据保存)、功能逻辑、页面展示
6.在schemas文件夹中定义一个注册页面users.js