nodejs express mongdb restful api

Introduction

Use express as server and provide callable api

module used

express (nodejs framework)
mongoose (easy to interact with mongod)

Directory Structure

--models // database models

----test.js

--routes // request routes

----users.js

--schemas // database schema

----test.js

--server.js // server entry

schemas/test.js file

var mongoose = require('mongoose'); // import datapath module
var testSchema = new mongoose.Schema({ // define the storage data structure
  aaa: String,
  bbb: Number,
  ccc: {
    body: String,
    date: {
      type: Date,
      default: Date.now()
    }
  },
  ddd: Boolean
});
testSchema.statics = { // public methods of testSchema
  fetch: function(cb) { // find everything in ascending order of bbb
    return this.find({}).sort('bbb').exec(cb);
  },
  findById: function(id, cb) { // Find the specified content by _id
    return this.findOne({_id:id}).exec(cb);
  }
};
module.exports = testSchema; // export the module

models/test.js file

var mongoose = require('mongoose'); // import database module
var testSchema = require('../schemas/test'); // import defined data schema
var testdb = mongoose.model('testdb',testSchema); // create data module
module.exports = testdb; // export data module

routes/test.js file

var express = require('express'); // import the express module
var router = express.Router(); // Get a router instance
var Mongodb = require('../models/test'); // import data module
router.get('/find', function(req, res){ // Find all data routes /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){ // route to add data /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; // export the module

server.js file

var express = require('express'); // import the express module
var port = process.env.PORT || 9527; // Modify the default port number to 9527
var mongoose = require('mongoose'); // import database module
var server = express(); // create a service object
var routes = require('./server/routes/test'); // import routing module
mongoose.connect('mongodb://localhost/testdb'); // connect to the database
server.use('/api',routes); // set routes
server.listen(port); // listen port number
console.log("start server! "+port);
After writing according to the above content, you can start and test

@root$:mongod // start the database

@root$:node server.js // start the service project

Add data to server: http://localhost:9527/api/add?aaa=123&bbb=321

Get data from server: http://localhost:9527/api/find


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325760462&siteId=291194637