Estoy tratando de usar la variable ajax del nodo js pero no tengo idea de cómo hacerlo.
const express = require('express'); const app = express(); app.listen(8080, function() { console.log('Listening on 8080.'); }); app.get('/', function(req, res) { res.sendFile(__dirname + '/search.html'); console.log('req.params:', req.params); //req.params: {} });El código anterior es mi server.js
<script> function postData() { var country = document.getElementById("Country").value; console.log(country); $.ajax({ type: "GET", url: 'http://localhost:8080/', data: country, dataType:'text', success: function(data) { console.log('success data: ', data); } }); } </script>buscar.html
Suponiendo que lo que está tratando de hacer es pasar el valor del country en su llamada Ajax y luego obtener acceso a ese valor en el servidor, entonces necesita poner el país en la URL para que su servidor pueda sacarlo de la URL.
Con $.ajax() puede pasar un objeto y luego jQuery generará automáticamente una cadena de consulta de la forma key=value . O bien, puede agregarlo directamente a la URL como parte de la ruta. Así es como lo haría como una cadena de consulta:
function postData() { var country = document.getElementById("Country").value; console.log(country); $.ajax({ type: "GET", url: 'http://localhost:8080/', data: {country: country}, success: function(data) { console.log('success data: ', data); } }); }Esto creará una URL como:
http://localhost:8080/?country=USA Luego, en su servidor, puede usar req.query.country para obtener el valor:
app.get('/', function(req, res) { console.log(req.query.country); res.sendFile(__dirname + '/search.html'); });También puede crear una URL como:
http://localhost:8080/usaY, haz la solicitud a esa URL. Para recibir eso en su servidor, puede hacer esto:
app.get('/:country', function(req, res) { console.log(req.params.country); res.sendFile(__dirname + '/search.html'); });Tenga en cuenta que esto es a lo que me refiero como una ruta comodín porque coincide con CUALQUIER ruta de nivel superior que puede interferir con su capacidad para usar otras URL de nivel superior en su servidor. Recomendaría no usar direcciones URL comodín de nivel superior. Podría agregar un prefijo de ruta como este:
http://localhost:8080/country/usaY luego usa esto:
app.get('/country/:country', function(req, res) { console.log(req.params.country); res.sendFile(__dirname + '/search.html'); });Entonces, no interferirá con otras URL de nivel superior que su servidor pueda querer usar.