У меня есть веб-страница с кнопкой, созданной с реагированием. Я хочу выполнить код js при нажатии кнопки. Код, который я хочу выполнить, - это модуль npm, который я создал, для которого требуются pg и fs, и он будет обрабатывать связь с сервером psql. Когда я добавляю «const database = require ('../ datadb / datadb. js')» (строка 2) в мой код, реагировать не удается скомпилировать. Ниже приведен код моей кнопки.
import React, { Component } from "react";
const database = require('../datadb/datadb.js'); //HERE is the line that causes compilation failure
/*
A function that handles when the LoadData button is clicked. This will allow for the data to be loaded in and stored into a database that can then be referenced.
*/
function Data() {
alert("'The data is loading'"); //Creates a pop up box
//HERE is where I will want to execute my modules code
}
/*
This function creates a component for the buttons.
*/
class LoadData extends Component {
render() {
return (
<div className="App">
<button onClick={Data}>Load Data</button>
<button>Open</button>
<button>Save</button>
</div>
);
}
}
export default LoadData;
, которое выдает сообщение об ошибке:
Failed to compile.
./src/datadb/node_modules/semver/semver.browser.js
Line 1180:37: 'define' is not defined no-undef
Line 1181:3: 'define' is not defined no-undef
Line 1185:35: 'define' is not defined no-undef
Line 1186:3: 'semver' is not defined no-undef
Я самостоятельно проверил свой модуль datadb
, и он работал нормально. Веб-страница загружается должным образом, и кнопка работает (как в предупреждении, работает должным образом в строке 10)
Я очень плохо знаком с кодированием, связанным с веб-страницей, как реагировать и javascript (большая часть моего опыта в Java и некоторые C) и были переданы этому проекту для реализации моего кода, но я не сделал веб-страницу или кнопку, поэтому я очень незнаком с реакцией. Модули npm не экспортируются, чтобы реагировать?
Вот файл базы данных. js по запросу
var fs = require('fs')
const {Client} = require('pg')
/**Connects to the client, then inserts all of the data from the given data array
*
* @param {*} dataArray the data to insert
* @param {*} client the DB client to connect to
*/
var insertRawData = async function(dataArray) {
const client = new Client({
user: "postgres",
password: "password123",
post: "5432",
database: "first"
})
try {
await client.connect()
await client.query("BEGIN")
var length = dataArray.length;
for(let i = 0; i < length; i++) {
queryString = "INSERT INTO rawdata.rawtable VALUES ( " + dataArray[i][0] + ", '" + dataArray[i][1] + "', " + dataArray[i][2] + ", " + dataArray[i][3] + ", " + dataArray[i][4] + ", " + dataArray[i][5] + ", " + dataArray[i][6] + ", " + dataArray[i][7] + ", " + dataArray[i][8] + ", " + dataArray[i][9] + ", " + dataArray[i][10] + ")" ;
await client.query(queryString)
console.log("NEW ROW INSERTED: " + queryString);
}
await client.query("COMMIT")
} catch (err) {
console.log("somethings wrong" + err)
} finally {
await client.end()
console.log("Connection ended")
}
}
/**
* Deletes all of the entries in the rawdata.rawtable table
*/
var deleteAllData = async function() {
const client = new Client({
user: "postgres",
password: "password123",
post: "5432",
database: "first"
})
try {
await client.connect()
await client.query("DELETE FROM rawdata.rawtable WHERE year=1 OR year!=1")
} catch (err) {
console.log("somethings wrong" + err)
} finally {
await client.end()
console.log("Connection ended")
}
}
/**
* Returns the entire database
*/
var getAllData = async function () {
const client = new Client({
user: "postgres",
password: "password123",
post: "5432",
database: "first"
})
var data;
try {
await client.connect()
data = await client.query("SELECT * FROM rawdata.rawtable")
} catch (err) {
console.log("somethings wrong" + err)
} finally {
await client.end()
console.log("Connection ended")
}
return data;
}
/** takes raw data returned from a SELECT psql query as input, returns the data
* in a 2d array format
*
* @param {*} data the raw data returned from a query
* @returns {*} the parsed data
*/
var parseDataFromQuery = async function(data){
var returnValue = [];
console.log("DATA: " + data.rows[0].year);
var dataSize = data.rows.length;
for(var i = 0; i < dataSize; i++){
returnValue.push([data.rows[i].year, data.rows[i].month, data.rows[i].occupancy, data.rows[i].adr, data.rows[i].revpar, data.rows[i].supply, data.rows[i].demand, data.rows[i].revinue, data.rows[i].cprops, data.rows[i].crooms, data.rows[i].sparts]);
}
console.log(returnValue);
}
var selectTest = async function(){
const client = new Client({
user: "postgres",
password: "password123",
post: "5432",
database: "first"
})
var data;
try {
await client.connect()
data = await client.query("SELECT * FROM rawdata.rawtable WHERE year=9 AND month='Jan'")
} catch (err) {
console.log("somethings wrong" + err)
} finally {
await client.end()
console.log("Connection ended")
}
console.log(parseDataFromQuery(data, ['year']));
//return data;
}
/**
* Exports the functions to be used elsewhere
*/
module.exports = {
insertRawData: insertRawData,
deleteAllData: deleteAllData,
getAllData: getAllData,
selectTest: selectTest,
parseDataFromQuery: parseDataFromQuery
};