可参考文档:http://mongoosejs.com/docs/guide.html
1、在app.js中进行模块划分:前台、后台和API模块。
app.use('/admin',require('./routers/admin'));//相当于子路由
app.use('/api',require('./routers/api'));
app.use('/',require('./routers/main'));
2、在routers下建立admin.js, api.js, main.js,同样引入框架、创建路由,注意:最后需要返回路由对象,作为第二个参数传给app.use…示例如下:
var express = require('express');
//创建路由对象
var router = express.Router();
//监听,根据app.js中app.use('/admin',require('./router/admin'));,不用再写/admin
router.get('/user',function(req,res,next){
res.send('ADMIN-User');
})
module.exports = router;
3、对于一个博客系统,整体说来,admin模块大致分为首页、用户管理、分类管理、文章内容管理和评论内容管理(列表、添加、编辑、删除等),api模块大致有注册、登陆、发表评论等。合理的功能模块开发顺序为:用户-->栏目分类-->内容-->评论。
4、用Schema定义用户数据的存储结构,先引入mongooose,再在后端实现用户注册、登陆、管理员验证等逻辑;
5、在应用程序的启动文件app.js中连接数据库:
var mongoose = require('mongoose');
……
mongoose.connect();
要安装好mongodb和其可视化工具RoboMongo,细节不赘述,mongodb的Complete安装的默认安装路径为C:\Program Files。
在此路径下打开命令窗口,开启其服务端mongod --dbpath=[db路径] --port=[指定端口]
(注:默认端口为27017,若被占用,则更为27018)
出现等待连接即配置成功;
可以通过mongo.exe用命令行来实现数据库的连接,这里,使用可视化工具RoboMongo,Create一个新的连接。
则数据库连接成功。
mongoose.connect('mongodb://localhost:27018/blog', function(err){
if(err){
console.log('Connection to tha database has failed!');
}else{
console.log('Connection to tha database succeed!');
//监听http请求
app.listen(8080);
}
});
注意:这里的操作都需要重启服务器。
此外,注意这里的监听http请求语句,因此,若重启服务器,则需要先开启mongodb,再开启node。
(若重新开启服务器连接数据库时出现cannot connect to mongodb ……network is unreachable,记住需要启动mongodb,mongod --dbpath=[db路径] --port=[指定端口] )
6、通过mongoose下的Schema定义用户的表结构
//把定义好的new出来的对象暴露出去
module.exports = new mongoose.Schema({
username:String,
password:String
});
7、在应用中,我们是根据模型来对数据进行增删改查的,模型类又是基于结构来处理的。因此在创建过表结构之后,要再创建模型类,在models文件下新建User.js。
var mongoose = require('mongoose');
//把刚才定义的schema文件加载进来
var usersSchema = require('../schemas/users');
//创建模型,暴露出去
module.exports = mongoose.model('User',usersSchema);
8、开始在app.js中设置的目录是views,则在routers/main.js中利用res.render()语句渲染view下的index.html,再重启服务器,实现首页的渲染。
接下来就是实现自己的静态页面啦,用到jquery,ajax,json……下一篇写博客系统中涉及到的主要功能的实现~