-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
49 lines (41 loc) · 1.33 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
const axios = require('axios');
const jsdom = require("jsdom");
var app = express();
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.post('/generateproducts', (req, res) => {
const url = req.body.url;
const { JSDOM } = jsdom;
var config = {
method: 'get',
url
};
axios(config)
.then(function (response) {
let allProducts = []
let dom = new JSDOM(response.data);
const table = dom.window.document.querySelectorAll('tr');
const products = Array.from(table)
products.forEach(product => {
const priceBeforeQuantity = parseFloat(product.children[1].children[1].textContent.replace(/,/g, '.'));
const quantity = parseInt(product.children[0].children[3].textContent.replace(/Qtde.:/,'').replace(/ /g,''));
productName = product.children[0].children[0].textContent;
// create({name: productName, price: priceBeforeQuantity / quantity})
allProducts.push({productName, price: priceBeforeQuantity / quantity})
})
res.send(allProducts);
})
.catch(function (error) {
console.log(error);
});
});
app.use('/', (req, res) => {
res.json({message: 'alive'});
});
module.exports = app;