git clone git@github.com:LambdaSchool/Node-Blog.git
Run npm init
yarn add *
dependencies
yarn add --dev *
dev-dependencies
Configure start script
Import express and start a server using .listen()
;
Setup third-party middleware
Create routes directories for users, posts, and tags
Import express
Import db from '../data/helpers/userDb';
Create router object using express.Router()
router.get()
router.get('/', (req, res) => {
db.get()
.then(response => {
res.json(response);
})
.catch(err => {
res.status(500).json({ error: err });
console.error(err);
});
});
router.get('/:id', (req, res) => {
db.get(req.params.id)
.then(users => {
if (users.length === 0) {
res.status(404).json({ message: 'user not found' });
} else {
res.json(users[0]);
}
})
.catch(err => {
res.status(500).json({ error: err });
console.error(err);
});
});
router.create()
router.post('/', (req, res) => {
const userInformation = req.body;
db
.insert(userInformation)
.then(response => {
res.status(201).json(response);
})
.catch(err => {
res.json({ error: err });
console.log(err);
});
});
router.put()
router.put('/:id', function(req, res) {
const { id } = req.params;
const update = req.body;
db
.update(id, update)
.then(count => {
if (count > 0) {
db.get(id).then(users => {
res.status(200).json(users[0]);
});
} else {
res.status(404).json({ msg: 'user not found' });
}
})
.catch(err => {
res.status(500).json(err);
console.error(err);
});
});
router.delete()
router.delete('/', function(req, res) {
const { id } = req.query;
let user;
db.get(id)
.then(foundUser => {
user = { ...foundUser[0] };
db.remove(id).then(() => {
res.status(200).json(user);
});
})
.catch(err => {
res.status(500).json({ error: err });
console.error(err);
});
});
Repeat for posts
and tags
.
Retrieve a list of posts for a user:
router.get('/:id/posts', (req, res) => {
db.getUserPosts(req.params.id)
.then(response => {
res.send(response);
}).catch(err => {
res.status(500);
console.error(err);
})
});
Retrieve a list of posts for a user:
router.get('/:id/tags', (req, res) => {
db.getPostTags(req.params.id)
.then(response => {
res.send(response);
}).catch(err => {
res.status(500);
console.error(err);
})
});
Use create-react-app to create an application inside the root folder, name it client.
From root run:
npx create-react-app client
cd client
yarn add axios