简介
使用express作为服务器并提供可调用api
所使用模块
express(nodejs框架)
mongoose(方便与mongod交互)
目录结构
--models // 数据库模型
----test.js
--routes // 请求路由
----users.js
--schemas // 数据库模式
----test.js
--server.js // 服务器入口
schemas/test.js文件
var mongoose = require('mongoose'); // 导入数据路模块
var testSchema = new mongoose.Schema({ // 定义存储数据结构
aaa: String,
bbb: Number,
ccc: {
body: String,
date: {
type: Date,
default: Date.now()
}
},
ddd: Boolean
});
testSchema.statics = { // testSchema的公共方法
fetch: function(cb) { // 按bbb升序排序查找所有内容
return this.find({}).sort('bbb').exec(cb);
},
findById: function(id, cb) { // 按_id查找指定内容
return this.findOne({_id:id}).exec(cb);
}
};
module.exports = testSchema; // 导出模块
models/test.js文件
var mongoose = require('mongoose'); // 导入数据库模块
var testSchema = require('../schemas/test'); // 导入已定义数据模式
var testdb = mongoose.model('testdb',testSchema); // 创建数据模块
module.exports = testdb; // 导出数据模块
routes/test.js文件
var express = require('express'); // 导入express模块
var router = express.Router(); // 获取一个路由实例
var Mongodb = require('../models/test'); // 导入数据模块
router.get('/find', function(req, res){ // 查找所有数据的路由 /api/find
Mongodb.fetch(function(err, objs){
if (err) {
res.json({
"flag" : "find",
"error" : err
});
} else {
res.json({
"objs" : objs
});
}
});
});
router.get('/add',function(req, res){ // 添加数据的路由 /api/add?aaa=123&bbb=321
var aaa = req.query.aaa;
var bbb = req.query.bbb;
var test = new Mongodb({
aaa : "aaa",
bbb : 123,
ddd : true
});
test.save(function(err){
if (err) {
res.json({
"flag" : "save",
"error": err
});
} else {
res.json({
"flag" : "save"
});
}
});
});
module.exports = router; // 导出模块
server.js文件
var express = require('express'); // 导入 express 模块
var port = process.env.PORT || 9527; // 修改默端口号为 9527
var mongoose = require('mongoose'); // 导入数据库模块
var server = express(); // 创建服务对象
var routes = require('./server/routes/test'); // 导入路由模块
mongoose.connect('mongodb://localhost/testdb'); // 连接数据库
server.use('/api',routes); // 设置路由
server.listen(port); // 监听端口号
console.log("start server! "+port);
按照上述内容编写后可以进行启动并测试
@root$:mongod // 启动数据库
@root$:node server.js // 启动服务项目
向服务器添加数据: http://localhost:9527/api/add?aaa=123&bbb=321
从服务器获取数据: http://localhost:9527/api/find