检索Ajax发送给Node JS的参数

时间:2017-06-06 18:58:49

标签: javascript node.js ajax iis

我有一个非常简单的Node JS文件:

test.js

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container">
  
  <div class="info">
    <div class="band band1">
      <p>All Time Low</p>
      <show>Show dates</show>
    </div>
    
    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
  <div class="info">
    <div class="band band2">
      <p>Johnny Cash</p>
      <show>Show dates</show>
    </div>
    
    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
  <div class="info">
    <div class="band band3">
      <p>30 Seconds to Mars</p>
      <show>Show dates</show>
    </div>
    
    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
  <div class="info">
    <div class="band band4">
      <p>Never Shout Never</p>
      <show>Show dates</show>
    </div>
    
    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
  <div class="info">
    <div class="band band5">
      <p>Miley Cyrus</p>
      <show>Show dates</show>
    </div>

    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
</div>

我使用来自普通JavaScript文件的非常简单的AJAX请求调用此文件:

getData.js

var http = require('http');

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

现在的testNode函数将返回硬编码的'5'变量。我想让它返回ajax请求的url中的'Person'字符串。

运行IIS服务器节点的人运行时告诉我Express已安装,但是当我添加

function testNode(){

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

在第二行,应用程序中断,我收到500错误。

我几天只与节点合作,但这是我需要满足我需求的最后一块拼图。我错过了什么?

我尝试过req.query.q和req.params('q'),但都没有效果。

1 个答案:

答案 0 :(得分:1)

在看到@jonasw的链接后,我得到了正确答案。

如果发送到节点js文件的参数标记为q,如?q = GetPerson那么这就是你需要的:

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。