diff --git a/package-lock.json b/package-lock.json index 2dc440d..1bf4191 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,11 +27,35 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, "bignumber.js": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=" + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -49,11 +73,30 @@ "type-is": "~1.6.17" } }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, + "buffer-indexof-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz", + "integrity": "sha1-qfuAbOgUXVQoUQznLyeLs2OmOL8=" + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" + }, "busboy": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", @@ -77,6 +120,14 @@ "printj": "~1.1.2" } }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, "codepage": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", @@ -98,6 +149,11 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, "connect-busboy": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/connect-busboy/-/connect-busboy-0.0.2.tgz", @@ -129,6 +185,11 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "core-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", + "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=" + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -183,6 +244,14 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -193,6 +262,11 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "es6-promise": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=" + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -274,6 +348,40 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -294,6 +402,20 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -309,6 +431,56 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "jszip": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", + "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", + "requires": { + "core-js": "~2.3.0", + "es6-promise": "~3.0.2", + "lie": "~3.1.0", + "pako": "~1.0.2", + "readable-stream": "~2.0.6" + }, + "dependencies": { + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + }, + "listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -342,6 +514,27 @@ "mime-db": "1.44.0" } }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -385,11 +578,29 @@ "ee-first": "1.1.1" } }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -435,6 +646,17 @@ "unpipe": "1.0.0" } }, + "read-excel-file": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-4.0.7.tgz", + "integrity": "sha512-0J2PYr0+W+MdNWV0ADX2YTl2NgjxQpB5kGetAKJD+aKPDEqaE+I2o538hjLsIAHYhE8+C4xyRKa/1Jx2uJ0LpQ==", + "requires": { + "jszip": "3.1.5", + "unzipper": "^0.9.15", + "xmldom": "^0.1.27", + "xpath": "0.0.27" + } + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -449,6 +671,14 @@ "util-deprecate": "~1.0.1" } }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -497,6 +727,11 @@ "send": "0.17.1" } }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -538,6 +773,11 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -552,6 +792,22 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unzipper": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.9.15.tgz", + "integrity": "sha512-2aaUvO4RAeHDvOCuEtth7jrHFaCKTSXPqUkXwADaLBzGbgZGzUDccoEdJ5lW+3RmfpOZYNx0Rw6F6PUzM6caIA==", + "requires": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -567,6 +823,11 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, "xlsx": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.14.5.tgz", @@ -580,6 +841,16 @@ "exit-on-epipe": "~1.0.1", "ssf": "~0.10.2" } + }, + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" + }, + "xpath": { + "version": "0.0.27", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz", + "integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==" } } } diff --git a/package.json b/package.json index 6ef9d00..c484071 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "dotenv": "^8.2.0", "express": "^4.17.1", "mysql": "^2.18.1", - "node-xlsx": "^0.15.0" + "node-xlsx": "^0.15.0", + "read-excel-file": "^4.0.7" } } diff --git a/routes/ArchivosCarga/cargaLibro.xlsx b/routes/ArchivosCarga/cargaLibro.xlsx new file mode 100644 index 0000000..3e52469 Binary files /dev/null and b/routes/ArchivosCarga/cargaLibro.xlsx differ diff --git a/routes/cargaLibro.js b/routes/cargaLibro.js index 4ea8813..7350aa3 100644 --- a/routes/cargaLibro.js +++ b/routes/cargaLibro.js @@ -7,6 +7,9 @@ var fs = require('fs'); var busboy = require('connect-busboy'); var path = require('path'); +const readXlsxFile = require('read-excel-file/node'); + + app.use(busboy()); function query(consulta) { @@ -41,43 +44,37 @@ function corregir(cad){ async function readExecel ( path ) { + console.log(`Entro a leer el excel`); let workbook; - try{ + try{ + await readXlsxFile(`${__dirname}/ArchivosCarga/cargaLibro.xlsx`).then(async (rows) => { + //console.log(`Este es el renglon: ${rows}`); + for(let i=1; i< rows.length ; i++) + { + + let titulo = corregir(rows [i][0]); + let autor = corregir(rows [i][1]); + let categoria = rows [i][2]; + let paginas = rows [i][3]; + let isbn = rows [i][4]; + let precio = rows [i][5]; + let edicion = corregir(rows [i][6]); + let year = rows [i][7]; + let descripcion = corregir(rows [i][8]); + let version = rows [i][9]; - workbook = xlsx.parse(fs.readFileSync(`${__dirname}/ArchivosCarga/${path}`)); - } - catch (error){ - console.log(`Ocurrio un error al leer el archivo msj: ${error}`); - throw new TypeError (`Error al leer el archivo msj: ${error}`); - } - - try{ - workbook = workbook[0].data; - - for(let i=1; i { var fstream; - console.log(`Entro`); - req.pipe(req.busboy); - req.busboy.on('file',async function (fieldname, file, filename) { - console.log("Uploading: " + filename); - let saveTo = path.join('.', `/routes/ArchivosCarga/cargaLibro.xlsx`); - console.log('Uploading: ' + saveTo); - file.pipe(fs.createWriteStream(saveTo)); - await readExecel(`cargaLibro.xlsx`); - res.status(200).json({error: false, msj: `Se inserto con exito`}); - }); + try{ + console.log(`Entro`); + req.pipe(req.busboy); + + req.busboy.on('file',async function (fieldname, file, filename) { + console.log("Uploading: " + filename); + let saveTo = path.join('.', `/routes/ArchivosCarga/cargaLibro.xlsx`); + console.log('Uploading: ' + saveTo); + file.pipe(fs.createWriteStream(saveTo)); + await readExecel(`cargaLibro.xlsx`); + res.status(200).json({error: false, msj: `Se inserto con exito`}); + }); + } + catch(error){ + console.log(`Np se pudo cargar el libro`); + res.status(400).json({error: true, msj: `No se pudo cargar el libro`}); + } }); diff --git a/routes/detalleLibro.js b/routes/detalleLibro.js index 893d12c..a0638a4 100644 --- a/routes/detalleLibro.js +++ b/routes/detalleLibro.js @@ -33,16 +33,17 @@ app.get('/libroDetalle', async(req, res) => { console.log(` Esta es la cadena : ${sqlString}`); let respuestaSql = await query(sqlString); - respuestaSql = respuestaSql[0]; - - if(respuestaSql.length === 0 ){ + if(typeof(respuestaSql.length) === 'undefined' || respuestaSql.length === 0 ){ res.status(400).json({error: true, msj: 'No se encontro el libro solicitado'}); return; } + respuestaSql = respuestaSql[0]; + res.status(200).json({error:false, msj: 'exito', datos: respuestaSql}) } catch(error){ + console.log(`Este es el error : ${error}`); res.status(400).json({error: true, msj: 'No se pudo obtener la el libro', desc: error}); return; } diff --git a/routes/getImagenCarrusel.js b/routes/getImagenCarrusel.js new file mode 100644 index 0000000..46f9217 --- /dev/null +++ b/routes/getImagenCarrusel.js @@ -0,0 +1,44 @@ +const connection = require('../conf/connection.js'); +const express = require('express') +var app = express(); +var xlsx = require('node-xlsx'); +var fs = require('fs'); +var busboy = require('connect-busboy'); +var path = require('path'); +const { type } = require('os'); + + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + +app.get('/imagenCarrusel', async(req, res) => { + console.log(`Entro a imagenes`); + + let data = req.query; + if( typeof( data.nombre ) === 'undefined' ){ + res.status(400).json({error: true, msj: 'Falta el ID del libro como parametro'}); + return; + } + console.log(` Este es el id: ${data.nombre}`); + try{ + + let img = fs.readFileSync(path.join('.', `/routes/imagenesCarrusel/${data.nombre}`)); + res.writeHead(200, {'Content-Type': 'image/jpg' }); + res.end(img, 'binary') + return; + } + catch(error){ + console.log(`ESte es el error : ${error}`); + res.status(400).json({error: true, msj: 'No se pudo obtener la imagen', desc: error}); + return; + } + +}); +module.exports = app diff --git a/routes/getNombresCarrusel.js b/routes/getNombresCarrusel.js new file mode 100644 index 0000000..590a976 --- /dev/null +++ b/routes/getNombresCarrusel.js @@ -0,0 +1,27 @@ +const connection = require('../conf/connection.js'); +const express = require('express') +var app = express(); +var fs = require('fs'); +const path = require('path'); + +app.get('/nombreCarrusel', async(req, res) => { + + + const directoryPath = path.join(__dirname, 'imagenesCarrusel'); + fs.readdir(directoryPath, function (err, files) { + let imagen = [] + if (err) { + res.status(400).json({error: true, msj:"Ocurrio un error al obtener los nombres", desc: err}); + return + } + + files.forEach(function (file) { + imagen.push(file); + console.log(file); + }); + res.status(200).json({error: false, msj:"Exito", data: imagen}); + return; + }); +}); + +module.exports = app; diff --git a/routes/imagenLibro/Libro2.jpg b/routes/imagenLibro/Libro2.jpg new file mode 100644 index 0000000..39c5ee8 Binary files /dev/null and b/routes/imagenLibro/Libro2.jpg differ diff --git a/routes/imagenLibro/Libro3.jpg b/routes/imagenLibro/Libro3.jpg new file mode 100644 index 0000000..bc1a68b Binary files /dev/null and b/routes/imagenLibro/Libro3.jpg differ diff --git a/routes/imagenLibro/Libro4.jpg b/routes/imagenLibro/Libro4.jpg new file mode 100644 index 0000000..14a02b4 Binary files /dev/null and b/routes/imagenLibro/Libro4.jpg differ diff --git a/routes/imagenesCarrusel/imagen1.png b/routes/imagenesCarrusel/imagen1.png new file mode 100644 index 0000000..5c51002 Binary files /dev/null and b/routes/imagenesCarrusel/imagen1.png differ diff --git a/routes/imagenesCarrusel/imagen2.png b/routes/imagenesCarrusel/imagen2.png new file mode 100644 index 0000000..b992a98 Binary files /dev/null and b/routes/imagenesCarrusel/imagen2.png differ diff --git a/routes/imagenesCarrusel/imagen3.png b/routes/imagenesCarrusel/imagen3.png new file mode 100644 index 0000000..9f25309 Binary files /dev/null and b/routes/imagenesCarrusel/imagen3.png differ diff --git a/routes/index.js b/routes/index.js index 5d28ded..fba3f39 100644 --- a/routes/index.js +++ b/routes/index.js @@ -6,5 +6,7 @@ app.use(require('./libroImagen')); app.use(require('./detalleLibro')); app.use(require('./libroNovedades')); app.use(require('./libroSimilar')); +app.use(require('./getNombresCarrusel')); +app.use(require('./getImagenCarrusel')); module.exports = app; \ No newline at end of file diff --git a/routes/libroImagen.js b/routes/libroImagen.js index a5fb956..581d8ed 100644 --- a/routes/libroImagen.js +++ b/routes/libroImagen.js @@ -27,23 +27,25 @@ app.get('/libroImagen', async(req, res) => { return; } console.log(` Este es el id: ${data.idLibro}`); - let sqlString = `SELECT * from Imagen where idLibro=${data.idLibro}`; - console.log(` Esta es la cadena : ${sqlString}`); - let respuestaSql = await query(sqlString); - if(respuestaSql.length === 0 ){ - res.status(400).json({error: true, msj: 'No se encontro el libro solicitado'}); - return; - } - try{ - + let sqlString = `SELECT * from Imagen where idLibro=${data.idLibro}`; + console.log(` Esta es la cadena : ${sqlString}`); + let respuestaSql = await query(sqlString); + if(respuestaSql.length === 0 ){ + res.status(400).json({error: true, msj: 'No se encontro el libro solicitado'}); + return; + } respuestaSql = respuestaSql[0]; - let img = fs.readFileSync(path.join('.', `/routes/imagenLibro/libro.jpg`)); + console.log(` esta es la respuesta ${respuestaSql}`); + for(let key in respuestaSql) + console.log(` __ ${key} : ${respuestaSql[key]}`); + let img = fs.readFileSync(path.join('.', `/routes/imagenLibro/${respuestaSql.ruta}`)); res.writeHead(200, {'Content-Type': 'image/jpg' }); res.end(img, 'binary') return; } catch(error){ + console.log(`ESte es el error : ${error}`); res.status(400).json({error: true, msj: 'No se pudo obtener la imagen', desc: error}); return; } diff --git a/routes/libroSimilar.js b/routes/libroSimilar.js index e352e8a..7a3a6f4 100644 --- a/routes/libroSimilar.js +++ b/routes/libroSimilar.js @@ -26,7 +26,7 @@ app.get('/librosSimilares', async(req, res) => { res.status(400).json({error: true, msj: 'Falta la categoria del libro como parametro'}); return; } - let sqlString = `SELECT * FROM Libro WHERE categoria=${data.categoria} LIMIT 3;`; + let sqlString = `SELECT * FROM Libro WHERE categoria='${data.categoria}' LIMIT 3;`; console.log(` Esta es la cadena : ${sqlString}`); let respuestaSql = await query(sqlString);