1. What is ExpressJS?
ExpressJS is a popular web application framework for Node.js. It provides a simple yet powerful set of features and APIs for building web applications and APIs. With ExpressJS, you can easily handle routes, middleware, request/response handling, and much more.
Example:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
2. What is the difference between app.use() and app.get()?
app.use()
is a middleware function that is executed for every request. It is commonly used to define global middleware that should be applied to all routes. On the other hand, app.get()
is a route handler function that is executed only for HTTP GET requests to the specified path.
Example:
// Global middleware
app.use((req, res, next) => {
console.log('This middleware is executed for every request');
next();
});
// Route handler
app.get('/users', (req, res) => {
console.log('This route handler is executed for HTTP GET requests to /users');
res.send('User list');
});
3. How do you handle form data in ExpressJS?
To handle form data in ExpressJS, you can use the body-parser
middleware. This middleware parses the request body and makes it available in req.body
.
Example:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/login', (req, res) => {
const { username, password } = req.body;
// Handle login logic
});
4. How do you handle errors in ExpressJS?
ExpressJS provides a built-in error handling middleware that can be used to handle errors across all routes. You can define your own error handling middleware or use the default one provided by ExpressJS.
Example:
app.use((err, req, res, next) => {
// handle the error
res.status(500).send('Internal Server Error');
});
5. What is the purpose of Router in ExpressJS?
Router in ExpressJS is used to define modular routes. It allows you to define routes in separate files and mount them onto a main express app. This makes your code more organized and scalable.
Example:
// routes/users.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('User list');
});
module.exports = router;
// app.js
const express = require('express');
const usersRouter = require('./routes/users');
const app = express();
app.use('/users', usersRouter);
6. How do you handle authentication in ExpressJS?
In ExpressJS, you can handle authentication using middleware. By writing custom middleware, you can check if the user is authenticated before accessing certain routes or resources.
Example:
// middleware.js
const isAuthenticated = (req, res, next) => {
if (req.user) {
next();
} else {
res.status(401).send('Unauthorized');
}
};
// routes/protected.js
const express = require('express');
const router = express.Router();
const isAuthenticated = require('../middleware');
router.get('/protected', isAuthenticated, (req, res) => {
res.send('Protected route');
});
module.exports = router;
// app.js
const express = require('express');
const protectedRouter = require('./routes/protected');
const app = express();
app.use('/api', protectedRouter);
7. How do you serve static files in ExpressJS?
ExpressJS provides a built-in middleware called express.static()
to serve static files. You can use this middleware to serve static assets such as HTML, CSS, JavaScript, and images.
Example:
const express = require('express');
const app = express();
app.use(express.static('public'));
8. How do you handle route parameters in ExpressJS?
ExpressJS allows you to define route parameters by specifying them in the route path. These parameters can then be accessed in the route handler using req.params
.
Example:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Handle request based on user ID
});
9. What are middleware in ExpressJS?
Middleware in ExpressJS are functions that have access to the request and response objects. They can modify the request/response objects, execute code, or pass control to the next middleware function.
Example:
const express = require('express');
const app = express();
app.use((req, res, next) => {
console.log('This middleware is executed for every request');
next();
});
10. How do you handle file uploads in ExpressJS?
To handle file uploads in ExpressJS, you can use middleware like multer
. Multer is a popular middleware for handling multipart/form-data, which is commonly used for file uploads.
Example:
const express = require('express');
const multer = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('file'), (req, res) => {
// Handle uploaded file
});
These are just a few of the many possible questions that you may encounter in an ExpressJS interview. Make sure to understand the concepts and practice implementing them to boost your confidence.
Remember, the key to success in any interview is preparation and practice. Good luck with your ExpressJS interview!