WorksheetsCandidates Exam – Node.js + Vue.js
Total questions: 1
Worksheet time: 3hrs 30mins
Candidates Exam – Node.js + Vue.js
Total Questions: 9
Section 1: Node.js (Q - 3)
Section 2: Vue (Q - 3)
Section 3: General Development (Q - 3)
Section 1: Node.js
Implement logging and exception handling mechanism in Node JS core, use well known concepts and design patterns
Consider the following Node.js code snippet that uses Sequelize for interacting with a database. The code is intended to create a User model and insert a new user into the database. However, there might be some issues and areas for improvement:
// models/User.js
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
const User = sequelize.define('User', {
username: {
type: DataTypes.STRING,
allowNull: false,
},
email: {
type: DataTypes.STRING,
allowNull: false,
},
});
module.exports = User;
// controllers/userController.js
const User = require('../models/User');
async function createUser(username, email) {
try {
const user = await User.create({
username: username,
email: email,
});
console.log('User created successfully:', user);
} catch (error) {
console.error('Error creating user:', error);
}
}
createUser('john_doe', 'john@example.com');
● Identify potential issues in the provided code and explain them.
● Propose improvements to address the identified issues and optimize the code.
Given the code below, after deployment, QA reports slowness in showing large data.
a. Explain the possible reasons for the slowness
b. Introduce code improvements to improve performance.
const fetchData = async () => {
const data = await database.query('SELECT * FROM large_data_set');
// Process the data, which may involve synchronous operations
const processedData = process(data);
return processedData;
};
Section 2: Vue
State Management, Create a Vue component for a dynamic form where the number of input fields can be increased by the user. Manage the state of all input fields using a single-state object.
Develop a Vue service that performs HTTP requests to a public API (like a weather API or a public JSON placeholder API).
Then, create a component that uses this service to fetch data and display it in a formatted way.
Using Vue, Implement a simple Observable that emits values over time (like a counter).
Then, create a component that subscribes to this Observable and displays its values in real time.
Additionally, include a way to unsubscribe from the Observable to demonstrate good practice in managing subscriptions.
Section 3: General Development
7
Write a function in (in any code) that finds the factorial of a given integer using recursion.
Given a sorted array from 1 to N, there is a bug that somewhere in the array there is a “jump” of 1 number, Write an algorithm in Node/Vue JS to find the index of the “jump”, consider time and place complexity, assume you don’t know the size of the array and it can be very large.
Example:
index 0 1 2 3 4 5 6 7 8 9
value 0 1 2 3 5 6 7 8 9 10
Write a SQL query to retrieve all unique customers who have made purchases in the last month from a "Customers" table and an "Orders" table.
Assume you have a "Customers" table with a unique "CustomerID" and an "Orders" table with a "CustomerID" and a "OrderDate" column.
