nodejs express mongdb restful api

简介

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


猜你喜欢

转载自blog.csdn.net/liangzelei/article/details/77942358