crud-api-express 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -2
- package/readme.md +63 -20
- package/dist/index.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crud-api-express",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -8,7 +8,15 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "npx rollup -c"
|
|
10
10
|
},
|
|
11
|
-
"keywords": [
|
|
11
|
+
"keywords": [
|
|
12
|
+
"crud",
|
|
13
|
+
"api",
|
|
14
|
+
"express",
|
|
15
|
+
"mongoose",
|
|
16
|
+
"typescript",
|
|
17
|
+
"rest-api",
|
|
18
|
+
"nodejs"
|
|
19
|
+
],
|
|
12
20
|
"author": "",
|
|
13
21
|
"license": "ISC",
|
|
14
22
|
"dependencies": {
|
|
@@ -18,6 +26,7 @@
|
|
|
18
26
|
"typescript": "^5.4.5"
|
|
19
27
|
},
|
|
20
28
|
"devDependencies": {
|
|
29
|
+
"@rollup/plugin-commonjs": "^26.0.1",
|
|
21
30
|
"@rollup/plugin-typescript": "^11.1.6",
|
|
22
31
|
"@types/express": "^4.17.21",
|
|
23
32
|
"@types/mongoose": "^5.11.97",
|
package/readme.md
CHANGED
|
@@ -32,40 +32,83 @@ To use `CrudController` in your Node.js project, follow these steps:
|
|
|
32
32
|
# Usage
|
|
33
33
|
Here's a basic example of how to use CrudController:
|
|
34
34
|
|
|
35
|
-
|
|
36
35
|
import express from 'express';
|
|
37
36
|
import mongoose from 'mongoose';
|
|
38
|
-
import CrudController from 'crud-api-express';
|
|
39
|
-
|
|
37
|
+
import CrudController from 'crud-api-express';
|
|
40
38
|
|
|
41
39
|
const Schema = mongoose.Schema;
|
|
42
|
-
|
|
43
40
|
const ExampleSchema = new Schema({
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
type: { type: String, default: 'Percentage', enum: ['Percentage', 'Flat'] },
|
|
42
|
+
status: { type: String, default: 'Active', trim: true },
|
|
43
|
+
expiry_date: { type: Date, index: true, trim: true },
|
|
47
44
|
}, { timestamps: true, versionKey: false });
|
|
48
45
|
|
|
49
46
|
const ExampleModel = mongoose.model('Example', ExampleSchema);
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
const options = {
|
|
49
|
+
middleware: [
|
|
50
|
+
(req, res, next) => {
|
|
51
|
+
// Example: Authentication middleware
|
|
52
|
+
const authToken = req.headers.authorization;
|
|
53
|
+
if (!authToken) {
|
|
54
|
+
return res.status(401).json({ message: 'Unauthorized' });
|
|
55
|
+
}
|
|
56
|
+
// Verify token logic here
|
|
57
|
+
next();
|
|
58
|
+
},
|
|
59
|
+
(req, res, next) => {
|
|
60
|
+
// Example: Logging middleware
|
|
61
|
+
console.log(`Request received at ${new Date()}`);
|
|
62
|
+
next();
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
onSuccess: (res, method, result) => {
|
|
66
|
+
console.log(`Successful ${method} operation:`, result);
|
|
67
|
+
res.status(200).json({ success: true, data: result });
|
|
68
|
+
},
|
|
69
|
+
onError: (res, method, error) => {
|
|
70
|
+
console.error(`Error in ${method} operation:`, error);
|
|
71
|
+
res.status(500).json({ error: error.message });
|
|
72
|
+
},
|
|
73
|
+
methods: ['GET', 'POST', 'PUT', 'DELETE'],
|
|
74
|
+
relatedModel: RelatedModel,
|
|
75
|
+
relatedField: 'relatedId',
|
|
76
|
+
aggregatePipeline: [
|
|
77
|
+
{ $match: { status: 'Active' } },
|
|
78
|
+
{ $sort: { createdAt: -1 } }
|
|
79
|
+
],
|
|
80
|
+
customRoutes: [
|
|
81
|
+
{
|
|
82
|
+
method: 'get',
|
|
83
|
+
path: '/custom-route',
|
|
84
|
+
handler: (req, res) => {
|
|
85
|
+
res.json({ message: 'Custom route handler executed' });
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
method: 'post',
|
|
90
|
+
path: '/custom-action',
|
|
91
|
+
handler: (req, res) => {
|
|
92
|
+
// Custom logic for handling POST request
|
|
93
|
+
res.json({ message: 'Custom action executed' });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const exampleController = new CrudController(ExampleModel, 'examples', options);
|
|
100
|
+
|
|
101
|
+
const mongoURI = 'mongodb://localhost:27017/mydatabase';
|
|
102
|
+
|
|
103
|
+
mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })
|
|
61
104
|
.then(() => {
|
|
62
|
-
console.log('Connected to MongoDB
|
|
105
|
+
console.log('Connected to MongoDB');
|
|
63
106
|
|
|
64
107
|
const app = express();
|
|
65
|
-
|
|
66
108
|
app.use(express.json());
|
|
67
109
|
|
|
68
110
|
app.use('/api', exampleController.getRouter());
|
|
111
|
+
|
|
69
112
|
console.log(exampleController.getRoutes());
|
|
70
113
|
|
|
71
114
|
const PORT = process.env.PORT || 3000;
|
|
@@ -74,7 +117,7 @@ mongoose.connect(mongoURI, { useNewUrlParser: false, useUnifiedTopology: false }
|
|
|
74
117
|
});
|
|
75
118
|
})
|
|
76
119
|
.catch(err => {
|
|
77
|
-
console.error('Error connecting to MongoDB
|
|
120
|
+
console.error('Error connecting to MongoDB:', err.message);
|
|
78
121
|
process.exit(1);
|
|
79
122
|
});
|
|
80
123
|
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|