节点快速传递变量从客户端到服务器
我试图从一个输入框的路线返回值的变量,通过采取这种source作为参考,但我坚持,在本例中笔者搜索的关键词,构建网址使用这个关键字,并返回一个主体响应。节点快速传递变量从客户端到服务器
我的使用情况有点不同,我需要的用户提供一个网址,如搜索框,一个字符串,然后,我会传给我的请求功能吐响应主体
当前app.js(服务器端)
app.get('/searching', function(req, res){
// input value from search
var url = req.query.search;
console.log(url); // prints value
request({ uri: url}, function (error, response, body) {
if (!error) {
content = body;
console.log(content);
} else {
console.log('Oops! Error when contacting slack.com');
}
});
res.send(content);
});
main.js(客户端)
$(function(){
$('#submit').on('click', function() {
var sSearch = $('#search').val();
var parameters = { search: sSearch };
$.get('/searching',parameters, function(data) {
$('#results').html(data);
});
});
});
我意识到在这两个上面的文件/searching
必须被替换,因为目前它的努力“搜索”的用户输入的URL值作为查询字符串,所以如果我输入“https://google.com”文本框中的应用程序试图搜索:
http://localhost:3000/searching?search=https%3A%2F%2Fgoogle.com
,而不是我需要通过这个网址为的就是能在request
功能,所以我可以打印body response
,在这种情况下,它将成为页面的源代码。但我不知道我应该如何进行
index.jade(模板)
extends layout
block content
input#search(type="search", placeholder="Enter Keyword")
button#submit(type='submit',class='btn btn-success') Search
h2#results
script(src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js")
script(src="/javascripts/main.js")
我应该如何格式,这样我可以从客户端变量传递给服务器,然后处理后发送回客户端?任何帮助表示赞赏。
我看到你的客户端代码Ajax请求,所以在你的服务器代码,试图回应是这样的:
res.status(200).json(content)
在客户端代码
,检查的内容有(的console.log(数据。)之前$()HTML(数据)...)
PD:请求是异步,所以你必须请求回调内响应。
在app.js
你是一个异步HTTP调用,但被调用的HTTP回调之前发送的响应。只是移动电话内res.send(content);
回
app.get('/searching', function(req, res){
// input value from search
var url = req.query.search;
console.log(url); // prints value
request({ uri: url}, function (error, response, body) {
if (!error) {
content = body;
console.log(content);
} else {
console.log('Oops! Error when contacting slack.com');
}
res.send(content);
});
});
啊感谢指出,我出去。虽然问题仍然存在,'请求module'仍试图在'HTTP搜索://本地主机:3000 /搜索搜索= HTTPS \\ google.com'虽然我只希望'请求module'处理'网址是什么? '用户已经输入并且不会将其追加为查询字符串。 – user988544
检查发送到请求模块的'uri'的值。在你的代码中有一个错字,我把它从'uri'改成'url'。 – kiran
这不是一个错字,'url'is即想过去保持的用户输入值的变量。 'VAR URL = req.query.search;' – user988544
您是通过声明它没有通过的方式使用'var'关键字泄漏'content'到全局命名空间。 – m90