简介
使用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