nodejs 的基本使用

来源:互联网 发布:php网站提权 编辑:程序博客网 时间:2024/06/04 01:13

全局对象

// 全局对象的宿主,类似于 window 对象global 

process

// 是命令行参数数组process.argvglobal.process// =========// 输出到控制台中process.stdout.write('hello');// 将当前控制台中的文件清空process.stdout.write('\033[2J');process.stdout.write('\033[0f');process.exit();// =========// 清空终端process.stdin.resume();process.stdin.on('data', (input) => {  // console.log(i++);  // 要在此处知道到底input是啥?  input = input.toString().trim();});// =========// 下一个事件循环时间处理process.nextTick(callback);// 尽量不要采用如下的方式来写// // 不断的循环阻塞了代码的执行// setTimeout(() => {//   for (var i = 0; i < 1000000000; i++) {}//   console.log('循环完了');// }, 0);

事件发射器

var events = require("events");var emitter = new events.EventEmitter();// 指定事件监听方法emitter.on("SomeEvent", function(argv1, argv2) {    console.log("listener1", argv1, argv2);});emitter.on("SomeEvent", function(argv1, argv2) {    console.log("listener2", argv1, argv2);});// 发射事件,多个事件监听方法都会被调用emitter.emit("SomeEvent", "info", 1991);

文件

// 读文件var fs = require('fs');// 读取文件,第二个参数可以是回调函数,可以是文件的编码fs.readFile('./1.png', function(error, data) {  if (error) {    console.log(error.stack);    return ;  }  console.log(data.toString('base64'));});// 同步的方式来读取文件var content = fs.readFileSync(`./frames/${i}.txt`, 'utf8');fs.readFile('./1.png', (error, data) => {  console.log(data.toString('base64'));});// =========// ---------// 写文件const fs = require('fs');fs.writeFile('./a.txt','he111llo');

HTTP服务器与客户端

获取GET参数

var url = require('url');var util = require('util');util.inspect(url.parse(req.url, true));

POST参数

var http = require('http');var querystring = require('querystring');var util = require('util');http.createServer(function(req, res) {        var post = '';        req.on('data', function(chunk) {        post += chunk;    });    req.on('end', function() {        post = querystring.parse(post);        res.end(util.inspect(post));    });}).listen(3000);

在 end 事件触发后,通过 querystring.parse 将 post 解析为真正的 POST 请求格式,然后向客户端返回。

【注意】 不要在真正的生产应用中使用上面这种简单的方法来获取 POST 请求,因为它有严重的效率问题和安全问题,这只是一个帮助你理解的示例。

返回数据

http.ServerResponse 是返回给客户端的信息,决定了用户最终能看到的结果。

http.ServerResponse 有三个重要的成员函数,用于返回响应头、响应内容以及结束请求。

response.writeHead(statusCode, [headers]):向请求的客户端发送响应头。statusCode 是 HTTP 状态码,如 200 (请求成功)、404 (未找到)等。headers是一个类似关联数组的对象,表示响应头的每个属性。该函数在一个请求内最多只能调用一次,如果不调用,则会自动生成一个响应头。response.write(data, [encoding]):向请求的客户端发送响应内容。data 是一个 Buffer 或字符串,表示要发送的内容。如果 data 是字符串,那么需要指定encoding 来说明它的编码方式,默认是 utf-8。在 response.end 调用之前,response.write 可以被多次调用。response.end([data], [encoding]):结束响应,告知客户端所有发送已经完成。当所有要返回的内容发送完毕的时候,该函数 必须 被调用一次。它接受两个可选参数,意义和 response.write 相同。如果不调用该函数,客户端将永远处于等待状态。
http.createServer(function(req, res) {    // HTTP 协议响应头    res.writeHead(200, {'Content-Type': 'text/html'});    // 服务器返回的数据    res.write('<h1>nodejs</h1>');    // 数据发送结束    res.end();

http客户端

修改端口号:

GET 方式获取数据

var http = require('http');http.get({host: 'www.baidu.com'}, function(res) {    res.setEncoding('utf8');    res.on('data', function (data) {        console.log(data);    });});

POST的快捷方式

require的方式

port: 8080,var options = {    host: 'www.baidu.com',    port: 8080,    path: '/,    method: 'POST',    headers: {        'Content-Type': 'application/x-www-form-urlencoded',        'Content-Length' : contents.length    }};var req = http.request(options, function(res) {    res.setEncoding('utf8');    res.on('data', function (data) {        console.log(data);    });});req.write(contents);req.end();
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 皮的手机壳发黄怎么办 荣耀手机一直在开机画面怎么办 玻璃手机壳碎了怎么办 华为6x信号不好怎么办 昂达平板v819i刷成砖了怎么办 华为5x忘记密码怎么办 荣耀8开不了机怎么办 华为5s死机了怎么办 华为重启后忘了解锁密码怎么办 华为mate.9上网速度慢怎么办 华为mate10上网速度慢怎么办 四核豌豆2变砖怎么办 苹果32g不够用怎么办 移动4g网络卡怎么办 移动4g网非常卡怎么办 移动4g卡网速慢怎么办 手机移动4g网卡怎么办 华为手机摄像头进灰怎么办 美图t8忘记密码怎么办 华为mate7忘记开机密码怎么办 华为mate9开机密码忘记怎么办 华为手机系统更新失败怎么办 mate9系统升级后耗电快怎么办 华为荣耀手机耗电快怎么办 荣耀10手机拍照不清晰怎么办 荣耀6x拍照模糊怎么办 华为荣耀P9进水了怎么办 苹果5s手机信号不好怎么办 苹果5s信号不好怎么办? 苹果5s像素不好怎么办 华为mate边缘有缝怎么办 华为mate8边缘有缝怎么办 手机系统占用运行内存大怎么办 安卓手机储存空间不足怎么办 手机显示系统空间不足怎么办 联系人存储已停止运行怎么办 荣耀note8听筒声音小怎么办 红米4x内存不足怎么办 安卓电视内存小怎么办 红米手机运行内存不足怎么办 红米手机存储空间不足怎么办