Adjuntar codigo js a un html en node.js

Tengo como objetivo correr un archivo de javascript en el lado del browser pero para ello primero tengo que cargarlo, el problema es que no funciona con solo referenciarlo en el archivo html, y me encuentro tratando de encontrar formas de cargar ese archivo para que no haya la necesidad de devolver datos del html al servidor para procesar cosas que podrian ser procesadas del lado del browser.

Para html estoy usando ejs, y en java estoy usando express.

var express = require('express') var app = express(); app.use(express.static('./public/confirm.js')); app.get('/ide', (req, res) => {     res.render('identification.ejs')     res.sendFile('./public/confirm.js')     console.log(req.url) }) app.listen(3000, console.log('Listening')) 

Ahora el archivo html:

<% include header.ejs%> <body>          <p>Complete the folowing input bars acordinly</p>         <input id="name" type="text" name="name" placeholder="First and last name"/>         <input id="id" type="number" name="id" placeholder="Id number"/>         <input id="homeAd" type="text" name="homeAd" placeholder="Home address"/>         <input id="posCod" type="number" name="posCod" placeholder="Postal Code"/>         <input id="phone" type="number" name="phone" placeholder="Phone"/>         <input id="homePhone" type="number" name="homePhone" placeholder="Home phone number"/>         <input id="email" type="text" name="email" placeholder="Email"/>         <br>         <button id="ideconfi" onclick="hola()">Sumbit</button>     </script src="../public/confirm.js"> 

El archivo que estoy intentando cargar esta en una carpeta public como pueden ver, se que tal vez la respuesta sea simple pero no encuentro forma de resolver agradeceria mucho si me ayudan.

Adjuntar subconsulta con varios campos a una consulta principal

Necesito adjuntar la query que un usuario lanza a un informe de estadísticas sobre consultas de larga duración en Amazon Redshift (basado en PostgreSQL). Estas las obtengo de la siguiente manera:

select query as idquery,wlm_start_time as inicio,queue_time as  tiempo_en_cola_microseg,exec_time as tiempo_ejecucion_microseg,  (tiempo_en_cola_microseg+tiempo_ejecucion_microseg) as tiempo_total_microseg  ,state as estado, mod(cast(floor(tiempo_total_microseg/3600000000) as integer),24) || ':' ||  mod(cast(floor(tiempo_total_microseg/60000000) as integer),60) || ':' ||  mod(cast(floor(tiempo_total_microseg/1000000) as integer),60)  as  duracion_hhmmss, case tiempo_total_microseg when tiempo_total_microseg>28800000000 then 'CRITICAL' else 'WARNING' end as situacion from stv_wlm_query_state where tiempo_total_microseg >= 14400000000 order by duracion_hhmmss; 

Ahora, necesito coger el campo query y buscar todo el texto (el select en si) en otra tabla:

select * from stl_querytext where query = 1319600; 

El problema es que esta última consulta arroja el siguiente resultado:

introducir la descripción de la imagen aquí

Es decir, la sentencia la divide en varias secuencias. Yo necesito que toda la consulta aparezca en un único campo, para adjuntarlo a la consulta de arriba, ya que ese resultado se exporta en .CSV

¿De qué manera podría hacerlo?

adjuntar archivos pdf a un email

llevo meses indagando pero no hay manera, no consigo que en versiones de Android N o superiores al hacer un intent hacia gmail con contenido para que me redacte el email, me añada el archivo adjunto, ya digo, uri.fromFile sin problemas pero con Uri.parse. me dice que no ha podido adjuntar nada.

estos son mis permisos

 <uses-permission android:name="android.permission.INTERNET" />     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />     <uses-permission android:name="android.permission.CAMERA" />

y este el código que uso. Espero que alguien pudiera ayudarme.

 public void enviarprecontrato1() {                       String pdfFilecreado = String.valueOf(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Rocamer/Contratos/", "PreContrato " + Variables.getnombreaseguradocontrato() + ".pdf"));              Uri uri;             //Validación de acuerdo al OS.             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {                 uri = Uri.parse(pdfFilecreado);              } else {                uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Rocamer/Contratos/",  "PreContrato " + Variables.getnombreaseguradocontrato() + ".pdf"));             }                       //Instanciamos un Intent del tipo ACTION_SEND         Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);          //Aqui definimos la tipologia de datos del contenido dle Email en este caso text/html         emailIntent.setType("text/html");          // Indicamos con un Array de tipo String las direcciones de correo a las cuales enviar         emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{emaildestino1.getText().toString()});          // Aqui definimos un email para enviar como copia         emailIntent.putExtra(Intent.EXTRA_CC, new String[]{emailcopia1.getText().toString()});          // Aqui definimos un titulo para el Email         emailIntent.putExtra(android.content.Intent.EXTRA_TITLE, emailtitulo1.getText().toString());          // Aqui definimos un Asunto para el Email         emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, emailasunto1.getText().toString());          // Aqui obtenemos la referencia al texto y lo pasamos al Email Intent         emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailcuerpo1.getText().toString());          // Colocamos el adjunto en el stream         emailIntent.putExtra(Intent.EXTRA_STREAM, uri);          //indicamos el tipo de dato         emailIntent.setType("application/pdf");          try {             //Enviamos el Correo iniciando una nueva Activity con el emailIntent.             startActivity(Intent.createChooser(emailIntent, "Seleccionar metodo de envio..."));         } catch (android.content.ActivityNotFoundException ex) {             Toast.makeText(generarpdfprecontrato.this, "No hay ninguna aplicación de correo electrónico instalada.", Toast.LENGTH_LONG).show();         }     }

quiero indicar que el código no lo he escrito yo desde cero, lo vi por Internet y lo arregle a mi necesidad y ya reporte un agradecimiento al que lo subio.

y las rutas están bien ya que Uri.fromFile funciona perfectamente.

Un Saludo