提交 465f5a37 编写于 作者: J Jeff Fox

REST APIs

上级 6cb22183
......@@ -3,6 +3,10 @@ var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
// Require file system module
var fs = require('file-system');
var mongoose = require('mongoose');
var app = express();
......@@ -15,17 +19,6 @@ mongoose.connect('mongodb://localhost:27017/express_app', function(){
process.exit(1);
});
// Require file system module
var fs = require('file-system');
// Include controllers
fs.readdirSync('controllers').forEach(function (file) {
if(file.substr(-3) == '.js') {
const route = require('./controllers/' + file)
route.controller(app)
}
})
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
......@@ -36,6 +29,14 @@ app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// Include controllers
fs.readdirSync('controllers').forEach(function (file) {
if(file.substr(-3) == '.js') {
const route = require('./controllers/' + file)
route.controller(app)
}
})
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
......@@ -52,6 +53,6 @@ app.use(function(err, req, res, next) {
res.render('error');
});
app.listen(3000, function(){console.log('listening on 3000')})
module.exports = app;
app.listen(3000, function(){console.log('listening on 3000')})
\ No newline at end of file
var User = require('../models/User');
module.exports.controller = (app) => {
// get users
// get all users
app.get('/users', (req, res) => {
res.render('users', {
title: 'Users',
description: 'This is the description of all users' });
User.find({}, 'name email', function(error, users) {
if(error){ console.log(error); }
res.send({
users: users
})
})
})
// get a single user details
app.get('/users/:id', (req, res) => {
User.findById(req.params.id, 'name email', function(error, user){
if(error){ console.log(error); }
res.send(user)
})
})
// add a new user
app.post('/users', (req, res) => {
const user = new User({
name: req.body.name,
email: req.body.email
})
user.save(function(error, user){
if(error){ console.log(error); }
res.send(user)
})
})
// update a user
app.put('/users/:id', (req, res)=>{
User.findById(req.params.id, 'name email', function(error, user){
if(error) { console.log(error); }
user.name = req.body.name
user.email = req.body.email
user.save(function(error, user){
if(error){ console.log(error); }
res.send(user)
})
})
})
// delete a user
app.delete('/users/:id', (req, res) => {
User.remove({
_id: req.params.id
}, function(error, user){
if(error){ console.error(error); }
res.send({ success: true})
})
})
}
\ No newline at end of file
const mogoose = require('mongoose');
const mongoose = require('mongoose')
const Schema = mongoose.Schema;
const Schema = mongoose.Schema
const UserSchema = new Schema({
name: String,
......@@ -8,4 +8,4 @@ const UserSchema = new Schema({
})
const User = mongoose.model('User', UserSchema)
module.expose = User
\ No newline at end of file
module.exports = User
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册