Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@ const logger = require('morgan')
const rateLimit = require('express-rate-limit')
const app = express()
const nunjucks = require('nunjucks')
const helmet = require('helmet');
const helmet = require('helmet')
const path = require('path')
const messages = require(path.join(__dirname, 'config', 'messages'))

app.use(helmet());

const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100,
message: 'Too many requests from this IP, please try again after 15 minutes',
message: messages.errors.rateLimitExceeded,
standardHeaders: true,
legacyHeaders: false,
})
Expand Down
5 changes: 3 additions & 2 deletions bin/www
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ var path = require('path')
var app = require('../app')
var env = process.env.NODE_ENV || 'development'
var config = require(path.join('..', 'config', env))
var messages = require(path.join('..', 'config', 'messages'))

/**
* Get port from environment and store in Express.
Expand Down Expand Up @@ -68,11 +69,11 @@ function onError (error) {
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges')
console.error(messages.errors.portElevatedPrivileges(bind))
process.exit(1)
break
case 'EADDRINUSE':
console.error(bind + ' is already in use');
console.error(messages.errors.portInUse(bind))
process.exit(1)
break
default:
Expand Down
32 changes: 32 additions & 0 deletions config/messages.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/**
* Centralized messages for the application
* Includes error messages, success messages, and informational messages
*/

module.exports = {
// Success Messages
success: {
contentstackConnected: 'Contentstack connection established.',
},

// Error Messages
errors: {
// Server errors
portElevatedPrivileges: (bind) => `Error: ${bind} requires elevated privileges. Try running with sudo or use a port above 1024.`,
portInUse: (bind) => `Error: ${bind} is already in use. Please stop the other process or use a different port.`,

// Rate limiting
rateLimitExceeded: 'Too many requests from this IP, please try again after 15 minutes.',

// Generic errors
notFound: 'The requested resource was not found.',
internalServerError: 'An internal server error occurred.',
},

// Informational Messages
info: {
serverStarting: (port) => `Server starting on port ${port}`,
serverListening: (bind) => `Listening on ${bind}`,
}
}

3 changes: 2 additions & 1 deletion models/contentstack.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
var path = require('path')
var env = process.env.NODE_ENV || 'development'
var config = require(path.join('..', 'config', env))
var messages = require(path.join('..', 'config', 'messages'))
const Contentstack = require(config.sdk).Contentstack

const Stack = Contentstack.Stack(config)

Stack.connect(config.contentStore).then(() => {
console.log("Connected")
console.log(messages.success.contentstackConnected)
}).catch(console.error)


Expand Down
20 changes: 10 additions & 10 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "datasync-nodejs-sdk-boilerplate",
"version": "0.0.6",
"version": "0.0.7",
"private": true,
"scripts": {
"start": "node ./bin/www",
Expand All @@ -16,7 +16,7 @@
"express": "^4.21.2",
"express-rate-limit": "^7.1.5",
"http-errors": "~2.0.0",
"morgan": "~1.10.0",
"morgan": "~1.10.1",
"nunjucks": "^3.2.4",
"path": "^0.12.7"
},
Expand Down
Loading