对服务器节点的请求.js
request to server node.js
我正在学习节点中的请求。我创建了简单的服务器
var http=require("http");
var fs=require("fs");
http.createServer(function(req,res){
switch(req.url){
case '/redirect' :
res.writeHead({"Location ":'/'});
res.end();
break;
case '/form.html' :
res.writeHead(200,{'Content-Type': 'text/html'});
req.setEncoding("utf-8");
var ws=fs.createReadStream("form.html")
var body="";
ws.pipe(body);
res.end(JSON.stringify(body));
break;
default:
res.writeHead(200,{"Content-Type": 'text/plain'});
res.end(JSON.stringify({
url:req.url,
method:req.method,
headers:req.headers
}));
}
}).listen(4001)
和请求脚本
var request=require("request");
var inspect = require("util").inspect;
request('http://localhost:4001/form.html',function(err,res,body){
if(err){
throw err;
}
console.log(inspect({
err:err,
res:{
statusCode:res.statusCode
},
body:JSON.parse(body)
}))
});
如果我理解正确(请求背后的逻辑)=1)请求脚本向服务器发出请求(默认获取)2)服务器脚本会注意到请求,并通过request.url确定该怎么做,这里我们在/form上发出请求.html3)服务器脚本将做/form/html case =将标头放入响应中,创建读取流并将值发送到响应中4)响应被发送到请求脚本中,在回调函数中由body参数表示5)脚本现在在回调函数=控制台中做adction.log响应。
form.html包含简单的htmp表单,但为什么请求脚本的输出是
{ err: null,
res: { statusCode: 200 },
body:
{ url: '/form.html',
method: 'GET',
headers: { host: 'localhost:4001', connection: 'close' } } }
而不是(在正文中)包含表单的文本代码.html?
我不确定我是否确切地理解您在交换机的form.html
分支中要做什么,但是如果您只是尝试提供form.html
文件,则可以这样做:
case '/form.html' :
res.writeHead(200,{'Content-Type': 'text/html'});
var ws = fs.createReadStream("form.html");
ws.pipe(res);
break;
这将向浏览器提供本地文件的内容form.html
。
相关文章:
- 有没有一种方法可以防止img get请求使用css或js发生
- 在openshift node js应用程序中获取请求
- node.js请求数据事件未在CORS ajax调用中触发
- 关于在node.js中请求
- 在Hapi.js Restful API中了解请求IP
- 回复'js'仅当请求有错误时(否则使用html)
- 如何判断请求/承诺是否需要超过5秒才能完成,angular js
- 请求js中的回调问题
- Chrome没有请求JS源地图,但Firefox请求
- 获取请求JS文件的网站的域
- 快递中的客户端 DEL 请求.js
- node.js请求js与curl相比失败
- 从请求.js请求方法返回结果
- 请求.JS和节点.js数据问题
- 从 Backbone 发送发布请求.js返回跨域错误
- 对服务器节点的请求.js
- 节点 - 请求.js仅在服务器上重置错误
- 脚本自己发出错误的请求(JS - TheMovieDb api)
- 如何阻止浏览器在IMG上发送额外请求.JS中的SRC变化
- 变量未在请求 JS 的数据事件中更新