Skip to content

Instantly share code, notes, and snippets.

@nairihar
Created May 12, 2018 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save nairihar/641240c8022e80b72958af261e216e39 to your computer and use it in GitHub Desktop.
Save nairihar/641240c8022e80b72958af261e216e39 to your computer and use it in GitHub Desktop.
Close process, Graceful shutdown, medium
const express = require('express');
const mongoose = require('mongoose');
const app = express();
app.use(express.urlencoded({extended: true}));
app.use(express.json());
mongoose.connect('mongodb://localhost/test', (err) => {
if (err) throw err;
console.log('Mongoose connected!');
});
const User = mongoose.model('User', { name: String });
app.post('/user', async (req, res) => {
try {
const user = new User({ name: req.body.username });
await user.save();
res.send('Success!').status(201);
} catch (err) {
res.send(err.message).status(500);
}
});
const server = app.listen(3000, () => console.log('Example app listening on port 3000!'));
process.on('SIGTERM', () => {
console.info('SIGTERM signal received.');
console.log('Closing http server.');
server.close(() => {
console.log('Http server closed.');
// boolean means [force], see in mongoose doc
mongoose.connection.close(false, () => {
console.log('MongoDb connection closed.');
process.exit(0);
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment