Aquí está mi archivo app.js:
const express = require('express'); const app = express(); app.use(express.static(__dirname + '/assets')); app.set('view engine', 'ejs'); app.listen(3000); app.get('/', (req, res) => { const toSearch = [] res.render('index', {toSearch}); }) app.use((req, res) => { res.status(404).render('404'); });Y aquí hay un fragmento de mi archivo JS (en mi index.js):
function addLatLng() { var name = document.getElementById('inputName').value(); var lat = document.getElementById('latitude_input').value; var lng = document.getElementById('longitude_input').value; console.log('Name:'+name+'Latitude:' + lat + ', Longitude:' + lng); } Quiero empujar el name, lat. lng datos de mi archivo JS en mi archivo app.js. ¿Cómo logro esto? Soy nuevo en Node.js y agradecería cualquier ayuda.
Creo que lo que quiere aquí es un nuevo punto final expreso que pueda aceptar HTTP POST con un cuerpo json:
const toSearch = [] app.use(express.json()); app.post('/update', (req, res) => { let json = req.body; toSearch.push({ name: json['name'], lat: json['lat'], lng: json['lng'], }) console.log(toSearch) return res.send('toSearch updated'); })En el lado del cliente, necesitará algún tipo de código para enviar la solicitud POST:
function addLatLng() { var name = document.getElementById('inputName').value; var lat = document.getElementById('latitude_input').value; var lng = document.getElementById('longitude_input').value; console.log('Name:' + name + 'Latitude:' + lat + ', Longitude:' + lng); var body = JSON.stringify({ name, lat, lng }) fetch('/update', { method: 'POST', headers: { 'Accept': 'application/json, text/plain, */*', 'Content-Type': 'application/json' }, body: body }).then(res => console.log(res)); }