node服务器基本搭建
const http = require('http')
// 引入http模块
http.createServer(function(req,res){
// 创建一个http服务器
// 这里是一个回调函数
console.log('服务器');
res.writeHead(200,{'Content-Type':'text/plain'});
res.end('hello world\n')
}).listen(8080)
在Node应用程序中,执行异步操作的函数将回调函数作为最后一个参数,回调函数又接收错误对象作为第一个参数
- 观察者模式:events内置事件模块
// 引入 events 模块
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
// 绑定事件及事件的处理程序
eventEmitter.on('eventName', eventHandler);
// 触发事件
eventEmitter.emit('eventName');
- 在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
- 创建 Buffer 类
- 写入缓冲区、读取缓冲区数据
- 将 Buffer 转换成 JSON 对象:buf.toJSON()
const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);
// 当字符串化一个 Buffer 实例时,JSON.stringify() 会隐式地调用该 toJSON()
// 输出: {"type":"Buffer","data":[1,2,3,4,5]}
console.log(json);
const copy = JSON.parse(json, (key, value) => {
return value && value.type === 'Buffer' ?
Buffer.from(value.data) :
value;
});
// 输出: <Buffer 01 02 03 04 05>
console.log(copy);
- Stream流
- 读取流、写入流
var fs = require('fs')
var zlib = require('zlib') //压缩模块
var rs = fs.createReadStream('input.txt') // 读取流
var os = fs.createWriteStream('output.txt') // 写入流
rs.setEncoding('utf-8')
rs.on('data',chunk=>{
os.write(chunk,'UTF8') })
rs.pipe(os) // 管道流,完成对大文件的慢慢传输
// 链式流,例:先压缩再写入
rs.pipe(zlib.createGzip()).pipe(fs.createWriteStream('output.zip'))
// 链式流,解压(这里压缩文件名后缀必须是'.gz')
fs.createReadStream('input.txt.gz').pipe(zlib.createGunzip()).pipe(fs.createWriteStream('input.txt'));
- 读取流、写入流
- 模块系统
一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展
- exports:暴露'属性名:属性值',key:暴露对象 ; module.exports 暴露'属性值',原生暴露对象
- require查找顺序:文件模块缓存 -> 原生模块缓存 -> 原生模块 -> 文件模块
- require接收以下几种模块
- http、fs、path等,原生模块
- ./mod或../mod,相对路径的文件模块
- /pathtomodule/mod,绝对路径的文件模块
- mod,非原生模块的文件模块
- NodeJs全局对象是global,ECMAScript是window
- 全局变量:全局对象的属性
- 在最外层定义的变量;
- 全局对象的属性
- 隐式定义的变量(未定义直接赋值的变量)
- 全局变量:全局对象的属性
node服务器基本搭建的更多相关文章
- 手把手教你从购买vps到搭建一个node服务器
要准备什么? 1.5刀 2.最好有FQ软件(可以用蓝灯) let's Go! 一.vps购买 vps可以选择digital ocean(do) 链接 ,由于是外国网站,响应比较慢,所以最好翻个墙. g ...
- webstorm搭建node服务器
前言,搭建服务器,必须有node.js环境(吐槽:本来就是用node搭建的(⊙o⊙)…) 下载node.js 网址 https://nodejs.org/en/ 先新建项目: 这里选择Node.js ...
- 在服务器上搭建node环境
一般公司的发布是后台人员完成的,但是作为开发不会发布项目还是有点不高级的感觉 因为没有搭建虚拟机于是就直接在我阿里云的服务器上搭建了node环境, 第一步,前往node官网下载linux下的阿里云的镜 ...
- 搭建一个最简单的node服务器
搭建一个最简单的node服务器 1.创建一个Http服务并监听8888端口 2.使用url模块 获取请求的路由和请求参数 var http = require('http'); var url = r ...
- node服务器搭建流程
1,创建一个空文件夹,用来存放项目. 2,在空文件夹中,在cmd命令提示符中输入npm init 初始化一个服务器项目. 设置的属性信息: name : 项目名称(小括号中是默认的,文件夹名相 ...
- paip.最好的脚本语言node js 环境搭建连接mysql
paip.最好的脚本语言node js 环境搭建连接mysql #====下载node...走十一个exe..容易的.. 1 #0----Hello world .js 2 #---------模 ...
- rsync服务器的搭建
Rsync(remote synchronize)是一个远程数据同步工具,简要的概括就是主机于主机之间的文件目录数据的一个同步.下面就是rsync服务器的搭建过程. 系统环境 平台:Centos ...
- 阿里云ECS服务器上搭建keepalived+mha+mysql5.6+gtid+一主两从+脚本判断架构踩的坑
最近,公司项目搭建了一套后端数据库架构,不是在RDS,是在阿里云的ECS服务器上搭建keepalived.mha.mysql5.6.gtid.一主两从架构,目前还没有实现读写分离,以后架构升级,可能代 ...
- node.js简单搭建服务,访问本地站点文件
1.安装nodejs服务(从官网下载安装),node相当于apache服务器 2.在自己定义的目录下新建服务器文件如 server.js 例如,我在D:\nodeJs下创建了server.js文件 v ...
随机推荐
- 使用 usbmon 抓取 usb 总线上的数据
使用 usbmon 抓取 usb 总线上的数据 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具.usbmon 本质是一个内核模块,在我的 ubuntu14.0 4中 ...
- [程序员代码面试指南]递归和动态规划-机器人达到指定位置方法数(一维DP待做)(DP)
题目描述 一行N个位置1到N,机器人初始位置M,机器人可以往左/右走(只能在位置范围内),规定机器人必须走K步,最终到位置P.输入这四个参数,输出机器人可以走的方法数. 解题思路 DP 方法一:时间复 ...
- Python反转链表
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None ...
- spring标签之SCOPEprototype
默认情况下,从 bean工厂所取得的实例为Singleton(bean的singleton属性) Singleton: Spring容器只存在一个共享的bean实例,默认的配置. Prototype: ...
- 【转】Locust 性能测试-小案例(1)-环境搭建
说在前面的话:从这节课开始,将讲解Locust作为一款测试工具,要怎么去应用.首先是"小案例"的系列文章,主要是给大家讲解locustfile也就是场景模拟的一些模式和方法.等到& ...
- myBatis 日记
一级缓存默认开启, 有效范围是在当前sqlsession, 同一个SqlSession对象执行相同的sql并参数也要相同,缓存才有效. 在同一个会话里面,多次执行相同的SQL 语句,会直接从内存取到缓 ...
- Centos-bzip2压缩文件-bzip2 bunzip2
bzip2 buzip2 对文件进行压缩与解压缩,类似 gzip gunzip命令,只能压缩文件,对目录则压缩目录下文件,生成以 .bz2为扩展名的文件 相关选项 -d 解压 -v 压缩或解压显示详细 ...
- Harmony OS 开发避坑指南——DevEco Device Tool 安装配置
Harmony OS 开发指南--DevEco Device Tool 安装配置 本文介绍如何在Windows主机上安装DevEco Device Tool工具. 坑点总结: 国内部分网络环境下,安装 ...
- Java学习day01
1.Java的种类: JavaSE(Java标准版) JavaEE(Java企业版) JavaME(Java微型版) 其中,JavaSE是基础,以后的方向是JavaEE(Java企业版) 2.什么是J ...
- 043 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 05 do-while循环介绍及应用
043 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 05 do-while循环介绍及应用 本文知识点:do-while循环介绍及应用 do-while循 ...