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

可参考文档: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……下一篇写博客系统中涉及到的主要功能的实现~



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js是一个基于Chrome V8 JavaScript引擎的JavaScript运行环境,可用于服务器端编程。Express是一个基于Node.js平台的Web应用开发框架,提供了简单易用的API,可以快速构建Web应用程序。Mongoose是一个优秀的Node.js模块,用于连接MongoDB数据库,并提供了丰富的API来操作MongoDB数据库。 下面是使用Node.js、Express、Mongoose操作MongoDB的基本流程: 1. 安装Node.js、Express和Mongoose 在终端中执行以下命令: ``` npm install node npm install express npm install mongoose ``` 2. 连接MongoDB数据库 在app.js或server.js文件中,使用Mongoose连接MongoDB数据库: ``` var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); ``` 3. 定义数据模型 在models目录下创建一个JavaScript文件,使用Mongoose定义数据模型: ``` var mongoose = require('mongoose'); var Schema = mongoose.Schema; var UserSchema = new Schema({ name: String, age: Number, email: String }); module.exports = mongoose.model('User', UserSchema); ``` 4. 实现API接口 在routes目录下创建一个JavaScript文件,实现API接口: ``` var express = require('express'); var router = express.Router(); var User = require('../models/user'); router.get('/users', function(req, res, next) { User.find(function(err, users) { if (err) return next(err); res.json(users); }); }); router.post('/users', function(req, res, next) { var user = new User(req.body); user.save(function(err) { if (err) return next(err); res.json(user); }); }); router.get('/users/:id', function(req, res, next) { User.findById(req.params.id, function(err, user) { if (err) return next(err); res.json(user); }); }); router.put('/users/:id', function(req, res, next) { User.findByIdAndUpdate(req.params.id, req.body, function(err, user) { if (err) return next(err); res.json(user); }); }); router.delete('/users/:id', function(req, res, next) { User.findByIdAndRemove(req.params.id, function(err, user) { if (err) return next(err); res.json(user); }); }); module.exports = router; ``` 5. 启动Express应用 在app.js或server.js文件中启动Express应用: ``` var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var userRoute = require('./routes/user'); app.use(bodyParser.json()); app.use('/api', userRoute); app.listen(3000, function() { console.log('Server listening on port 3000'); }); ``` 6. 测试API接口 通过Postman等工具测试API接口。例如: - GET http://localhost:3000/api/users - POST http://localhost:3000/api/users - GET http://localhost:3000/api/users/5f3e7003c3e1c12345678901 - PUT http://localhost:3000/api/users/5f3e7003c3e1c12345678901 - DELETE http://localhost:3000/api/users/5f3e7003c3e1c12345678901 这样就完成了使用Node.js、Express、Mongoose操作MongoDB的基本流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值