├── README.md ├── index.js ├── package-lock.json └── package.json /README.md: -------------------------------------------------------------------------------- 1 | # Node.js + MySQL CRUD Operation 2 | Content Discussed : 3 | - How to Connect MySQL DB from Node.js 4 | - Execute MySQL Query From Node.js 5 | - Use of MySQL Store Procedure in Node.js. 6 | 7 | 8 | ## Get the Code 9 | 10 | ``` 11 | $ git clone https://github.com/CodAffection/Node.js-MySQL-CRUD-Operations.git 12 | $ cd Node.js-MySQL-CRUD-Operations 13 | $ npm install 14 | //update MySQL DB configuration according to yours. 15 | ``` 16 | 17 | ## How it works ? 18 | 19 | :tv: Video tutorial on this same topic 20 | Url : https://youtu.be/4fWWn2Pe2Mk 21 | 22 | Video Tutorial for Node.JS + MySQL 25 | 26 | 27 | | :bar_chart: | List of Tutorials | | :moneybag: | Support Us | 28 | |--------------------------:|:---------------------|---|---------------------:|:-------------------------------------| 29 | | Angular |http://bit.ly/2KQN9xF | |Paypal | https://goo.gl/bPcyXW | 30 | | Asp.Net Core |http://bit.ly/30fPDMg | |Amazon Affiliate | https://geni.us/JDzpE | 31 | | React |http://bit.ly/325temF | | 32 | | Python |http://bit.ly/2ws4utg | | :point_right: | Follow Us | 33 | | Node.js |https://goo.gl/viJcFs | |Website |http://www.codaffection.com | 34 | | Asp.Net MVC |https://goo.gl/gvjUJ7 | |YouTube |https://www.youtube.com/codaffection | 35 | | Flutter |https://bit.ly/3ggmmJz| |Facebook |https://www.facebook.com/codaffection | 36 | | Web API |https://goo.gl/itVayJ | |Twitter |https://twitter.com/CodAffection | 37 | | MEAN Stack |https://goo.gl/YJPPAH | | 38 | | C# Tutorial |https://goo.gl/s1zJxo | | 39 | | Asp.Net WebForm |https://goo.gl/GXC2aJ | | 40 | | C# WinForm |https://goo.gl/vHS9Hd | | 41 | | MS SQL |https://goo.gl/MLYS9e | | 42 | | Crystal Report |https://goo.gl/5Vou7t | | 43 | | CG Exercises in C Program |https://goo.gl/qEWJCs | | 44 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const mysql = require('mysql'); 2 | const express = require('express'); 3 | var app = express(); 4 | const bodyparser = require('body-parser'); 5 | 6 | app.use(bodyparser.json()); 7 | 8 | var mysqlConnection = mysql.createConnection({ 9 | host: 'localhost', 10 | user: 'root', 11 | password: '1234', 12 | database: 'EmployeeDB', 13 | multipleStatements: true 14 | }); 15 | 16 | mysqlConnection.connect((err) => { 17 | if (!err) 18 | console.log('DB connection succeded.'); 19 | else 20 | console.log('DB connection failed \n Error : ' + JSON.stringify(err, undefined, 2)); 21 | }); 22 | 23 | 24 | app.listen(3000, () => console.log('Express server is runnig at port no : 3000')); 25 | 26 | 27 | //Get all employees 28 | app.get('/employees', (req, res) => { 29 | mysqlConnection.query('SELECT * FROM Employee', (err, rows, fields) => { 30 | if (!err) 31 | res.send(rows); 32 | else 33 | console.log(err); 34 | }) 35 | }); 36 | 37 | //Get an employees 38 | app.get('/employees/:id', (req, res) => { 39 | mysqlConnection.query('SELECT * FROM Employee WHERE EmpID = ?', [req.params.id], (err, rows, fields) => { 40 | if (!err) 41 | res.send(rows); 42 | else 43 | console.log(err); 44 | }) 45 | }); 46 | 47 | //Delete an employees 48 | app.delete('/employees/:id', (req, res) => { 49 | mysqlConnection.query('DELETE FROM Employee WHERE EmpID = ?', [req.params.id], (err, rows, fields) => { 50 | if (!err) 51 | res.send('Deleted successfully.'); 52 | else 53 | console.log(err); 54 | }) 55 | }); 56 | 57 | //Insert an employees 58 | app.post('/employees', (req, res) => { 59 | let emp = req.body; 60 | var sql = "SET @EmpID = ?;SET @Name = ?;SET @EmpCode = ?;SET @Salary = ?; \ 61 | CALL EmployeeAddOrEdit(@EmpID,@Name,@EmpCode,@Salary);"; 62 | mysqlConnection.query(sql, [emp.EmpID, emp.Name, emp.EmpCode, emp.Salary], (err, rows, fields) => { 63 | if (!err) 64 | rows.forEach(element => { 65 | if(element.constructor == Array) 66 | res.send('Inserted employee id : '+element[0].EmpID); 67 | }); 68 | else 69 | console.log(err); 70 | }) 71 | }); 72 | 73 | //Update an employees 74 | app.put('/employees', (req, res) => { 75 | let emp = req.body; 76 | var sql = "SET @EmpID = ?;SET @Name = ?;SET @EmpCode = ?;SET @Salary = ?; \ 77 | CALL EmployeeAddOrEdit(@EmpID,@Name,@EmpCode,@Salary);"; 78 | mysqlConnection.query(sql, [emp.EmpID, emp.Name, emp.EmpCode, emp.Salary], (err, rows, fields) => { 79 | if (!err) 80 | res.send('Updated successfully'); 81 | else 82 | console.log(err); 83 | }) 84 | }); 85 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "project", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.5", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", 10 | "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", 11 | "requires": { 12 | "mime-types": "2.1.18", 13 | "negotiator": "0.6.1" 14 | } 15 | }, 16 | "array-flatten": { 17 | "version": "1.1.1", 18 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 19 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 20 | }, 21 | "bignumber.js": { 22 | "version": "4.0.4", 23 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.4.tgz", 24 | "integrity": "sha512-LDXpJKVzEx2/OqNbG9mXBNvHuiRL4PzHCGfnANHMJ+fv68Ads3exDVJeGDJws+AoNEuca93bU3q+S0woeUaCdg==" 25 | }, 26 | "body-parser": { 27 | "version": "1.18.2", 28 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", 29 | "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", 30 | "requires": { 31 | "bytes": "3.0.0", 32 | "content-type": "1.0.4", 33 | "debug": "2.6.9", 34 | "depd": "1.1.2", 35 | "http-errors": "1.6.3", 36 | "iconv-lite": "0.4.19", 37 | "on-finished": "2.3.0", 38 | "qs": "6.5.1", 39 | "raw-body": "2.3.2", 40 | "type-is": "1.6.16" 41 | } 42 | }, 43 | "bytes": { 44 | "version": "3.0.0", 45 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 46 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" 47 | }, 48 | "content-disposition": { 49 | "version": "0.5.2", 50 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 51 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" 52 | }, 53 | "content-type": { 54 | "version": "1.0.4", 55 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 56 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 57 | }, 58 | "cookie": { 59 | "version": "0.3.1", 60 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 61 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 62 | }, 63 | "cookie-signature": { 64 | "version": "1.0.6", 65 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 66 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 67 | }, 68 | "core-util-is": { 69 | "version": "1.0.2", 70 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 71 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 72 | }, 73 | "debug": { 74 | "version": "2.6.9", 75 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 76 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 77 | "requires": { 78 | "ms": "2.0.0" 79 | } 80 | }, 81 | "depd": { 82 | "version": "1.1.2", 83 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 84 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 85 | }, 86 | "destroy": { 87 | "version": "1.0.4", 88 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 89 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 90 | }, 91 | "ee-first": { 92 | "version": "1.1.1", 93 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 94 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 95 | }, 96 | "encodeurl": { 97 | "version": "1.0.2", 98 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 99 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 100 | }, 101 | "escape-html": { 102 | "version": "1.0.3", 103 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 104 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 105 | }, 106 | "etag": { 107 | "version": "1.8.1", 108 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 109 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 110 | }, 111 | "express": { 112 | "version": "4.16.3", 113 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", 114 | "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", 115 | "requires": { 116 | "accepts": "1.3.5", 117 | "array-flatten": "1.1.1", 118 | "body-parser": "1.18.2", 119 | "content-disposition": "0.5.2", 120 | "content-type": "1.0.4", 121 | "cookie": "0.3.1", 122 | "cookie-signature": "1.0.6", 123 | "debug": "2.6.9", 124 | "depd": "1.1.2", 125 | "encodeurl": "1.0.2", 126 | "escape-html": "1.0.3", 127 | "etag": "1.8.1", 128 | "finalhandler": "1.1.1", 129 | "fresh": "0.5.2", 130 | "merge-descriptors": "1.0.1", 131 | "methods": "1.1.2", 132 | "on-finished": "2.3.0", 133 | "parseurl": "1.3.2", 134 | "path-to-regexp": "0.1.7", 135 | "proxy-addr": "2.0.3", 136 | "qs": "6.5.1", 137 | "range-parser": "1.2.0", 138 | "safe-buffer": "5.1.1", 139 | "send": "0.16.2", 140 | "serve-static": "1.13.2", 141 | "setprototypeof": "1.1.0", 142 | "statuses": "1.4.0", 143 | "type-is": "1.6.16", 144 | "utils-merge": "1.0.1", 145 | "vary": "1.1.2" 146 | }, 147 | "dependencies": { 148 | "statuses": { 149 | "version": "1.4.0", 150 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 151 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 152 | } 153 | } 154 | }, 155 | "finalhandler": { 156 | "version": "1.1.1", 157 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", 158 | "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", 159 | "requires": { 160 | "debug": "2.6.9", 161 | "encodeurl": "1.0.2", 162 | "escape-html": "1.0.3", 163 | "on-finished": "2.3.0", 164 | "parseurl": "1.3.2", 165 | "statuses": "1.4.0", 166 | "unpipe": "1.0.0" 167 | }, 168 | "dependencies": { 169 | "statuses": { 170 | "version": "1.4.0", 171 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 172 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 173 | } 174 | } 175 | }, 176 | "forwarded": { 177 | "version": "0.1.2", 178 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 179 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 180 | }, 181 | "fresh": { 182 | "version": "0.5.2", 183 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 184 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 185 | }, 186 | "http-errors": { 187 | "version": "1.6.3", 188 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", 189 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", 190 | "requires": { 191 | "depd": "1.1.2", 192 | "inherits": "2.0.3", 193 | "setprototypeof": "1.1.0", 194 | "statuses": "1.5.0" 195 | } 196 | }, 197 | "iconv-lite": { 198 | "version": "0.4.19", 199 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 200 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" 201 | }, 202 | "inherits": { 203 | "version": "2.0.3", 204 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 205 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 206 | }, 207 | "ipaddr.js": { 208 | "version": "1.6.0", 209 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", 210 | "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" 211 | }, 212 | "isarray": { 213 | "version": "1.0.0", 214 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 215 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 216 | }, 217 | "media-typer": { 218 | "version": "0.3.0", 219 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 220 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 221 | }, 222 | "merge-descriptors": { 223 | "version": "1.0.1", 224 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 225 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 226 | }, 227 | "methods": { 228 | "version": "1.1.2", 229 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 230 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 231 | }, 232 | "mime": { 233 | "version": "1.4.1", 234 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", 235 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" 236 | }, 237 | "mime-db": { 238 | "version": "1.33.0", 239 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", 240 | "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" 241 | }, 242 | "mime-types": { 243 | "version": "2.1.18", 244 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", 245 | "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", 246 | "requires": { 247 | "mime-db": "1.33.0" 248 | } 249 | }, 250 | "ms": { 251 | "version": "2.0.0", 252 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 253 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 254 | }, 255 | "mysql": { 256 | "version": "2.15.0", 257 | "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.15.0.tgz", 258 | "integrity": "sha512-C7tjzWtbN5nzkLIV+E8Crnl9bFyc7d3XJcBAvHKEVkjrYjogz3llo22q6s/hw+UcsE4/844pDob9ac+3dVjQSA==", 259 | "requires": { 260 | "bignumber.js": "4.0.4", 261 | "readable-stream": "2.3.3", 262 | "safe-buffer": "5.1.1", 263 | "sqlstring": "2.3.0" 264 | } 265 | }, 266 | "negotiator": { 267 | "version": "0.6.1", 268 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 269 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 270 | }, 271 | "on-finished": { 272 | "version": "2.3.0", 273 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 274 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 275 | "requires": { 276 | "ee-first": "1.1.1" 277 | } 278 | }, 279 | "parseurl": { 280 | "version": "1.3.2", 281 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", 282 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" 283 | }, 284 | "path-to-regexp": { 285 | "version": "0.1.7", 286 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 287 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 288 | }, 289 | "process-nextick-args": { 290 | "version": "1.0.7", 291 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 292 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 293 | }, 294 | "proxy-addr": { 295 | "version": "2.0.3", 296 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", 297 | "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", 298 | "requires": { 299 | "forwarded": "0.1.2", 300 | "ipaddr.js": "1.6.0" 301 | } 302 | }, 303 | "qs": { 304 | "version": "6.5.1", 305 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 306 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" 307 | }, 308 | "range-parser": { 309 | "version": "1.2.0", 310 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 311 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" 312 | }, 313 | "raw-body": { 314 | "version": "2.3.2", 315 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", 316 | "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", 317 | "requires": { 318 | "bytes": "3.0.0", 319 | "http-errors": "1.6.2", 320 | "iconv-lite": "0.4.19", 321 | "unpipe": "1.0.0" 322 | }, 323 | "dependencies": { 324 | "depd": { 325 | "version": "1.1.1", 326 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", 327 | "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" 328 | }, 329 | "http-errors": { 330 | "version": "1.6.2", 331 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", 332 | "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", 333 | "requires": { 334 | "depd": "1.1.1", 335 | "inherits": "2.0.3", 336 | "setprototypeof": "1.0.3", 337 | "statuses": "1.5.0" 338 | } 339 | }, 340 | "setprototypeof": { 341 | "version": "1.0.3", 342 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", 343 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" 344 | } 345 | } 346 | }, 347 | "readable-stream": { 348 | "version": "2.3.3", 349 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 350 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 351 | "requires": { 352 | "core-util-is": "1.0.2", 353 | "inherits": "2.0.3", 354 | "isarray": "1.0.0", 355 | "process-nextick-args": "1.0.7", 356 | "safe-buffer": "5.1.1", 357 | "string_decoder": "1.0.3", 358 | "util-deprecate": "1.0.2" 359 | } 360 | }, 361 | "safe-buffer": { 362 | "version": "5.1.1", 363 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 364 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 365 | }, 366 | "send": { 367 | "version": "0.16.2", 368 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", 369 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", 370 | "requires": { 371 | "debug": "2.6.9", 372 | "depd": "1.1.2", 373 | "destroy": "1.0.4", 374 | "encodeurl": "1.0.2", 375 | "escape-html": "1.0.3", 376 | "etag": "1.8.1", 377 | "fresh": "0.5.2", 378 | "http-errors": "1.6.3", 379 | "mime": "1.4.1", 380 | "ms": "2.0.0", 381 | "on-finished": "2.3.0", 382 | "range-parser": "1.2.0", 383 | "statuses": "1.4.0" 384 | }, 385 | "dependencies": { 386 | "statuses": { 387 | "version": "1.4.0", 388 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 389 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 390 | } 391 | } 392 | }, 393 | "serve-static": { 394 | "version": "1.13.2", 395 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", 396 | "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", 397 | "requires": { 398 | "encodeurl": "1.0.2", 399 | "escape-html": "1.0.3", 400 | "parseurl": "1.3.2", 401 | "send": "0.16.2" 402 | } 403 | }, 404 | "setprototypeof": { 405 | "version": "1.1.0", 406 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", 407 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" 408 | }, 409 | "sqlstring": { 410 | "version": "2.3.0", 411 | "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.0.tgz", 412 | "integrity": "sha1-UluKT9Jtb3GqYegipsr5dtMa0qg=" 413 | }, 414 | "statuses": { 415 | "version": "1.5.0", 416 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 417 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 418 | }, 419 | "string_decoder": { 420 | "version": "1.0.3", 421 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 422 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 423 | "requires": { 424 | "safe-buffer": "5.1.1" 425 | } 426 | }, 427 | "type-is": { 428 | "version": "1.6.16", 429 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", 430 | "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", 431 | "requires": { 432 | "media-typer": "0.3.0", 433 | "mime-types": "2.1.18" 434 | } 435 | }, 436 | "unpipe": { 437 | "version": "1.0.0", 438 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 439 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 440 | }, 441 | "util-deprecate": { 442 | "version": "1.0.2", 443 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 444 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 445 | }, 446 | "utils-merge": { 447 | "version": "1.0.1", 448 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 449 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 450 | }, 451 | "vary": { 452 | "version": "1.1.2", 453 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 454 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 455 | } 456 | } 457 | } 458 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "project", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "body-parser": "^1.18.2", 13 | "express": "^4.16.3", 14 | "mysql": "^2.15.0" 15 | } 16 | } 17 | --------------------------------------------------------------------------------