nodejs博客系统(express+mongodb)2——划分模块+连接数据库

来源:互联网 发布:mac复制文件夹到u盘 编辑:程序博客网 时间:2024/05/22 12:00

可参考文档: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'));,不用再写/adminrouter.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……下一篇写博客系统中涉及到的主要功能的实现~



0 0
原创粉丝点击