basic-resource v1.2.2
basic-resource
Register basic resources
Easy registration on basic REST resources on your Express/mongo node application.
install
Install by command line:
$ npm install basic-resource
Or add to your package.json:
{
"basic-resource": "^0.2.0"
}
In your resource source add:
var mongoose = require('mongoose');
var ClientSchema = mongoose.Schema({
name: { type: String, required: true },
city: { type: String, required: true },
phone: { type: String, required: true },
created: { type: Date, default: Date.now }
} );
var Client = mongoose.model("Client", ClientSchema);
return require("basic-resource")(app, Client, {name: "clients", context: "/api"});
Basic urls to be register:
http://your-app-host/clients - GET
to get all clients (controller method "index")
http://your-app-host/clients - POST
for client creation (controller method "create")
http://your-app-host/clients/:clientId - GET
to get one client (controller method "one")
http://your-app-host/clients/:clientId - PUT
to update user (controller method "update")
http://your-app-host/clients/:clientId - DELETE
- to delete user (controller method "remove")
You can pass additional query params:
Parameter fields
will limit fields in result documents to specified. For example you can get /clients?fields=_id,create
to only get _id
and create
fields of all clients
Parameter start
will skip first N records of result. For example you can get /clients?start=10
to get clients from 10'th (can be combined with length
for pagination)
Parameter length
will limit result length to N. For example you can get /clients?length=10
to get only 10 clients (can be combined with start
for pagination)
Modify controller default methods
To replace methods use:
var controller = {}; // create controller to
controller.create = function(req, res) {
res.statusCode = 406;
return res.json({
message: "you currently can't create new users"
});
}
return require("basic-resource")(app, Client, {name: "clients", context: "/api", controller: controller});
Configure generated controller
You can pass options to controller generator:
var resource = require("basic-resource")(app, Client, {
name: "clients",
context: "/api",
validate: function(data) {
return data.match(/[0-9A-F]+/i);
},
format: function(data) {
if(data.index > 10) {
return {index: "more then 10"};
}
return null;
}
});
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago