2017-06-06 45 views
1

我有一个非常简单的节点JS文件:检索参数传送到阿贾克斯节点JS

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); 

我打电话这个文件从一个正常的一个非常简单的AJAX请求JavaScript文件:

getData.js

function testNode(){ 

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

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

运行IIS服务器节点的人员运行在告诉我,安装快,但是当我添加

var express = require('express'); 

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

我只用了几天的节点,但这是我需要满足我的需求的难题的最后一块。我错过了什么?

我试过req.query.q和req.params('q'),但都没有工作。

+1

如果你得到Express的工作,看看https://stackoverflow.com/questions/6912584/how-to-get-get-query-string-variables-in-express-js-on-node-js –

+0

查看[this](https://expressjs.com/en/4x/api.html#app)获取快速启动设置 – Gados

+0

是否需要将表达需要添加到webconfig工作?除此之外,还有什么其他原因可以打破它作为一项要求? –

回答

0

看到从@jonasw的链接后,我能够得到正确的答案。 ?

如果paramater被发送到节点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); 

变种q会GetPerson在里面。