2017-06-06 2 views
1

Ich habe eine sehr einfache Knoten JS-Datei:Apportieren Parameter von Ajax zu Knoten JS Sent

test.js

var http = require('http'); 

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.end('5'); 
}).listen(process.env.PORT); 

Ich rufe Sie diese Datei mit einem sehr einfachen AJAX-Request von einem normalen JavaScript-Datei:

getData.js

function testNode(){ 

$.get("https://mywebsite.com/test.js?q=Person").done(function(data) { 
     $.when(data).then(function() { 
      console.log(data); 
     }); 
    }); 
} 

Die testNode-Funktion, so wie sie ist, gibt die hartcodierte '5' Variable zurück. Ich möchte stattdessen die 'Person'-Zeichenfolge zurückgeben, die in der URL der Ajax-Anfrage enthalten war.

Die Person, die die IIS-Server-Knoten läuft, läuft im sagt mir, dass Express installiert ist, aber wenn ich

var express = require('express'); 

Zeile zwei hinzufügen, die Anwendung Pausen und ich erhalte einen 500 Fehler.

Ich habe nur ein paar Tage mit Node gearbeitet, aber das ist das letzte Teil des Puzzles, das ich brauche, um meine Bedürfnisse zu erfüllen. Was vermisse ich?

Ich habe req.query.q und req.params ('q') versucht, aber keiner hat funktioniert.

+1

Wenn Sie Express arbeiten, sehen Sie sich https://stackoverflow.com/questions/6912584/how-to-get-get-query-string-variables-in-express-js-on-node-js an –

+0

Siehe [this] (https://expressjs.com/en/4x/api.html#app) für eine schnelle Express-Startkonfiguration – Gados

+0

Muss Express zum webconfig hinzugefügt werden, um zu funktionieren? Welchen anderen Grund würde es geben, um zu brechen, nur um es als eine Voraussetzung zu integrieren? –

Antwort

0

Nachdem ich den Link von @jonasw gesehen hatte, konnte ich die richtige Antwort finden. ?

Wenn die Parameter um auf die Datei als q markiert ist js Knoten gesendet werden, wie in q = GetPerson dann ist es das, was Sie brauchen:

var http = require('http'), 
fs = require('fs'), 
url = require('url'); 

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'application/json'}); 
    var url_parts = url.parse(req.url, true); 
    var query = url_parts.query; 
    var q = query.q;  
}).listen(process.env.PORT); 

var q GetPerson darin haben wird.