响应:

  • 可以自定义设置状态码(状态码范围内的):res.statusCode =  404;
  • 修改响应头信息: res.setHeader('content-type','text/html');
  • 修改头信息,让页面跳转:res.setHeader('location','http://www.baidu.com');  (注意:状态码要改成302,因为302是重定向)
  • 也可以自己在响应头信息中添加一些参数:比如    res.setHeader('age','20');
  • 模拟cookie: res.setHeader('set-cookie','name=hh;expires=Thu,28-Aug-2017 18:24:55 GMT;Max-Age=360;path=/');
  • 响应体:(1)返回字符串: res.write('hello  word!');
                     (2)  返回标签:res.write('<h2>标题</h2>');
                   (3)返回大段的html:res.write(`<!DOCTYPE html><html>code <script></script> </html>`);   这里只要是html页面中写的代码都可以,包括什么js代码css代码没问题。但是有一点注意,写大段html代码的时候,就不能使用单引号 了,要使用数字1前面的那个字符,它允许换行。
                   (4) 返回json数据:var data = {name:'xixi',age=20};    var  str = JSON.stringify(data);    res.write(str);    注意:因为 json数据是对象,而res.write();要求第一个参数必须是字符串,所以需要用js中的方法  JSON.stringify()  把json数据转换成字符串。
  • res.end()在结尾必须加上。

    静态资源请求:

使用nodejs服务,不管请求什么资源,都是在  var server = http.createServer(function(req,res) {  } );   橙色的花括号里面处理的。所有请求都要在这个里面处理。比如说如果想要请求css文件,那么就需要在function里读取css文件内容,然后在通过响应体返回给客户端。

 //引入内置的http包
var http = require('http');
//引入fs包操作文件
var fs = require('fs');
//创建服务
var server = http.createServer(function(req,res){
//客户端请求的文件的路径
var path = req.url;
//拼接文件路径
var filePath = './statics/'+path; //因为习惯上把静态资源文件放在statics目录或者public目录下
//读取文件内容
fs.readFile(filePath,function(err,data){
if(err){
res.statusCode = ;
res.end('not found');
return; //让后面代码不在执行,避免包错
}
res.statusCode = ;
res.write(data);
res.end();
}) res.end('are you ok?'); //res.end()执行了的话,后面的代码就不能执行了,就像laravel中的dd();
//异步返回的结果也不能执行了,因为res.end是在异步回来之前执行的
res.write(''); //去掉res.end,执行这行代码,异步返回的结果还是能执行的。
}); //端口监听
console.log('ok');
server.listen();

点这里

表单处理:

//引入内置的http包
var http = require('http');
//引入fs包操作文件
var fs = require('fs');
//
var querystring = require('querystring');
//创建服务
var server = http.createServer(function(req,res){
//客户端请求的文件的路径
var url = req.url;
//获取请求方式
var method = req.method;
if(method.toLowerCase() == 'get' && url == '/form'){
//拼接文件路径
var filePath = 'statics/form.html';
//读取文件内容
fs.readFile(filePath,function(err,data){
if(err){
res.statusCode = 404;
res.end('not found');
return; //让后面代码不在执行,避免包错
} res.setHeader('content-type','text/html');
res.statusCode = 200;
res.write(data);
res.end();
});
} //服务端处理提交上来的表单数据,这里和Apache不同,需要自己来完成
if(method.toLowerCase() == 'post' && url == '/form'){
var data = '';
req.addListener('data',function(chunk){
//chunk 参数是将传递的数据分割传过来
data += chunk;
});
req.addListener('end',function(){
var d = querystring.parse(data); //是将字符串转换成对象,方便我们使用data数据中的某些参数
console.log(d); res.statusCode = 200;
res.setHeader('content-type','text/html');
res.write(data);
res.end();
});
} }); //端口监听
console.log('ok');
server.listen(8090);

客户端的代码略。注意一点:客户端代码的路径一定要和服务端设置的路径一致。或者说服务端判断路径的时候要和客户端的路径一致。

nodejs (下)(设置响应参数)的更多相关文章

  1. Linux下设置swappiness参数来配置内存使用到多少才开始使用swap分区(转)

    swappiness的值的大小对如何使用swap分区是有着很大的联系的.swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100的时候表示积极的使用s ...

  2. nginx+tomcat 下POST响应参数过大无法显示完整及文件下载服务遇到过大文件无法下载解决办法

    在nginx里location里面设置 proxy_buffering off; 或者 proxy_buffering on; proxy_buffers 4 4k; proxy_busy_buffe ...

  3. Scala命令设置JVM参数的规则

    Scala下设置JVM参数简单分析 Scala 启动shell脚本,简化后的scala REPL 启动命令大致如下所示: java -Xmx256M -Xms32M \-Xbootclasspath/ ...

  4. java微信开发(wechat4j)——设置响应微信参数

    设置响应微信参数 wechat4j框架官方文档: https://github.com/sword-org/wechat4j/wiki

  5. centos下设置nodejs开机启动

    node环境的安装便不再赘述了,网上有很多教程,也非常简单. 上一篇博客介绍了用nginx代理nodejs.这一篇是使用pm2实现nodejs的自动重启. 什么是pm2? 如官网介绍的,pm2是nod ...

  6. ASP.NET Core 请求/查询/响应参数格式转换(下划线命名)

    业务场景: 在 ASP.NET Core 项目中,所有的代码都是骆驼命名,比如userName, UserName,但对于 WebApi 项目来说,因为业务需要,一些请求.查询和响应参数的格式需要转换 ...

  7. nodejs prefix(全局)和cache(缓存)windows下设置

    引:在安装完nodejs后,通过npm下载全局模块默认安装到{%USERDATA%}C:\Users\username\AppData\下的Roaming\npm下,这当然是不太对的默认. 1,安装L ...

  8. [记]Windows 系统下设置Nodejs NPM全局路径

    Windows下的Nodejs npm路径是appdata,担心安装的node_modules越来越多,导致C盘满,所以参考别人的博文,将node_modules安装的默认目录修改一下. 参考Wind ...

  9. Windows系统下的TCP参数优化(注册表\TCPIP\Parameters)

    转自:https://blog.csdn.net/libaineu2004/article/details/49054261 Windows系统下的TCP参数优化   TCP连接的状态与关闭方式及其对 ...

随机推荐

  1. PAT A1035 Password (20)

    AC代码 注意创造函数条件中使用引用 输出语句注意单复数 #include <cstdio> #include <cstring> #include <iostream& ...

  2. one:arguments对象伪数组

    这是我的第一个博客 <script> //计算N个数字的和 //定义一个函数,如果不确定用户是否传入了参数,或者说不知道用户传入了几个参数,没办法计算, // 但是如果在函数中知道了参数的 ...

  3. python元组数据类型讲解

    元组可以被看成是不能改变的列表.列表是动态的,你可以增添,插入,删除,更改列表元素.有时我们需要这样的操作,但是有些时候我们需要保证有些数据是不能被用户或程序更改的.这就是元组的作用. 准确的说,列表 ...

  4. sqlalchemy定义mysql时间戳字段

    update_time = Column(TIMESTAMP, nullable=False, comment='更新时间戳', server_default=text('CURRENT_TIMEST ...

  5. T100——接口代码记录,jsonArray和json

    {<section id="cs_t1client.description" >} #應用 a00 樣板自動產生(Version:) #+ Version..: T10 ...

  6. MySQL解惑——GROUP BY隐式排序

    原文:MySQL解惑--GROUP BY隐式排序 MySQL中GROUP BY隐式排序是什么概念呢? 主要是其它RDBMS没有这样的概念,如果没有认真了解过概念,对这个概念会感觉有点困惑,我们先来看看 ...

  7. 小白学 Python 爬虫(25):爬取股票信息

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  8. wpf GeometryDrawing 绘制文字

    <GeometryDrawing x:Key="GeometryDrawingText"> <GeometryDrawing.Geometry> <R ...

  9. 03 Go语言特性

    一.基本注意事项 1.转义字符 \t 一个制表符,代表一次tab \n 换行符 \\ 转义代表 \ \" 转义代表 " \r 一个回车,从当前行的最前面开始输出,会覆盖以前的内容, ...

  10. vue 项目中如何在页面刷新的状态下保留数据

    1.问题:在vue项目中,刷新页面之后,我当前打开的所有菜单,都消失,我如何实现刷新之后页面仍然是刷新之前的状态 效果图: 解决方法: 使用vuex作状态管理: 将vuex里面的数据同步更新到loca ...