"use strict"; const Promise = require("bluebird"); const express = require("express"); const path = require("path"); const knex = require("knex")(require("../knexfile")); let app = express(); app.set("views", path.join(__dirname, "views")); app.set("view engine", "jsx"); app.engine("jsx", require("@joepie91/express-react-views").createEngine()); app.use(express.static(path.join(__dirname, "../public"))); app.get("/", (req, res) => { res.redirect("/datasheets"); }); app.get("/datasheets", (req, res) => { res.render("index"); }); app.post("/search", (req, res) => { return Promise.try(() => { return knex.raw(` SELECT data->>'manufacturer' AS manufacturer, data->>'name' AS name, data->>'url' AS url, data->>'description' AS description, data->>'source' AS source FROM items WHERE id LIKE 'datasheet:%' AND lower(data->>'name') LIKE :query ORDER BY name LIMIT 20 `, { query: req.query.query.toLowerCase() + "%" }); }).then((result) => { res.json({ results: result.rows }); }); }); module.exports = app;