nodejs

Node.js转化GBK编码 - iconv-lite

node当使用node获取GBK编码的数据时,nodejs只支持utf-8,node没有提供转换编码的原生支持,有倒是有一个模块iconv能干这个事,但需要本地方法,VC++库的支持。国外有个大牛写了一个纯粹用Javascript解码的模块:iconv-lite,可以实现编码转换,使用方法如下: var http = require("http"); var iconv = require("iconv-lite"); var url = "http://hq.sinajs.cn/list=sh600595"

  • liaojl
1 min read
nodejs

【Node.js基础篇】(八)安装Express 3.2框架以及ejs模板

Html模板以及路由文件等服务器必备的功能虽然我们都可以自己实现,但在稳定性、可靠性、全面性方面肯定是有所遗漏的,所以,从今天起,Node的学习就进入了框架学习部分。 维基百科: 框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作。或者说使用别人搭好的舞台来做编剧和表演。 第一个要学习的框架是在Node中被广泛应用的框架——Express。 安装Express 如果你使用的Node开发环境是WebStorm的话,在新建工程的时候可以直接选新建Node工程,它会给你安装好Express框架(但可能模板渲染使用的是jade)。虽然这的确很方便,但还是建议你使用npm包管理工具来安装Express,因为这个工具以后会常用到。我们使用第二个方法安装Express框架,然后使用WebStorm管理文件。 第一步:进入Node的文件夹,打开cmd进入当前页面 输入:npm

  • liaojl
4 min read
nodejs

【Node.js基础篇】(七)Node异步编程之事件发射器

事件发射器是Node里除了回调函数外的另一十分重要的异步编程技术。 在MFC等图形界面编程库中,事件发射器是非常常见的,比如,鼠标点击事件,点击了鼠标后,就会触发鼠标点击后的函数——事件发射器触发事件,并且在事件被触发后处理它们。在Node API组件中,如HTTP服务器、TCP服务器等都被做成了事件发射器,所以掌握事件发射器的编程方法,是非常重要的。 使用on添加监听器 步骤: 声明事件发射器类 创建事件发射器对象 使用on添加事件发射器 使用emit发射事件 //事件发射器类声明 var EventEmitter = require("events").EventEmitter; //创建事件发射器 var emitter = new

  • liaojl
2 min read
nodejs

【Node.js基础篇】(六)实现如同jsp标签的HTML模板

一、概述 在上一篇中,我们已经可以使用mime类型模块以及文件传输模块为客户端返回任何类型的文件,但目前能返回的只有静态的HTML,css等文件,而jsp等服务器端语言却可以通过<% %>标签来实现java的扩张,根据请求来指定返回给客户端的html,从而只需要有一个html模板,就可以返回无数个html页面,而不用一个一个页面的编写,然后根据请求路由各个HTML。 今天,我们要实现的就是类似jsp这样的html模板文件(当然,远没有jsp那般强大)。首先,得先介绍一下JSON(JavaScript Object Notation) 二、JSON JSON是一种轻量级的数据交换格式,可用来替代xml成为服务端和客户端之间数据交换格式。程序解析起JSON数据来也非常快。下面是JSON的语法和一段示例: 数据在名称/值对中 数据由逗号分隔

  • liaojl
5 min read
nodejs

【Node.js基础篇】(五)使用mime模块来响应css、js文件的请求

1.概述 上一篇中我们实现了客户端的路由请求,包括直接使用js返回内容响应和使用html文件响应,但上一篇中最后的显示结果只是一个很普通的html文件,不能使用css样式和js文件,今天我们就通过设置响应文件的mime类型来实现不同文件的响应。 文章会先介绍什么是mime类型,然后介绍两种设置mime类型的方法,第一种是通过后缀名判断文件类型,从而进行响应;第二种是使用第三方mime模块进行响应。 示例是在上一篇的基础上扩展的。 2.mime类型简介 MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。(百度百科) 简单点说,mime是一个互联网标准,通过设定它就可以设定文件在浏览器的打开方式。(有兴趣的话,可以试一下用css打开方式打开html文件,更助于理解)

  • liaojl
5 min read
nodejs

【Node.js基础篇】(四)Node.js实现文件路由功能

昨天创建的服务器只是在浏览器请求时简单响应了一下,而今天要创建的服务器是可以根据不同的URL请求响应不同的文件,也就是所谓的文件路由:根据不同的文件请求响应不同的“路”。 第一步:创建文件Luyou.js,在里面声明引用模块的变量和需响应的文件路由 //获取http模块 var http = require("http"); //文件模块 var fs = require('fs'); //主页路由模块,file文件夹里的index.js文件 var index = require('./file/index'); //错误处理文件路径 var error

  • liaojl
3 min read
nodejs

【Node.js基础篇】(三)Node.js创建HTTP服务器

作为一种强大的服务端开发技术,Node.js最本职的工作还是开发Web应用,下面介绍一下如何使用Node.js的核心模块来开发一个HTTP服务器,示例如下: /** * Created by Administrator on 2015/3/25. */ //1.获取内嵌的http模块(提供http服务器和客户端) var http = require('http'); //2.创建HTTP服务器 var server = http.createServer(function(req,res){ if(req.url == '/

  • liaojl
1 min read
nodejs

【Node.js基础篇】(二)Node模块的使用

类似于C++的头文件,Java的引用类,Node.js也有一种将功能拆分、封装、组合的工具,就是模块。 Node.js里的模块的用法与头文件、引用类等有所不同,它使用的是JavaScript的风格,一个模块就是一个对象,可以var一个变量来引用, 具体如下例: //module.js //Node.js创建模块 //module模块里的方法 exports.sayHello = function(){ console.log("床前明月光"); }; //module模块里的变量 exports.hello = "疑是地上霜&

  • liaojl
1 min read
nodejs

【Node.js基础篇】(一)Hello World和事件驱动编程

Node.js是基于Google的V8引擎的一个事件驱动I/O服务端JavaScript环境。它在2009年由Ryan Dahl发布,此后,迅速崛起成为一种新型服务端语言。 下面就逐步介绍Node.js。(有关Node.js的安装等过程就不介绍了,另外,建议大家的IDE使用WebStrom,真的很不错。) 和其它语言的入门一样,先得把Hello,World输出来(熟悉的感觉会增强信心) console.log("Hello World"); Node.js是我学过的语言中写“Hello,World”最容易的了,不需要头文件,不需要包,也不需要标签。console是它的一个内嵌对象,

  • liaojl
2 min read
nodejs

【Node.js基础篇】使用net模块和Readline模块实现Socket通信

Node.js的socket通信和C++、Java的非常相像,学过这两种语言的socket通信的同学可以很快就掌握好Node.js的socket通信。下面我们以实现一个Echo服务器的服务端和客户端为目的,学习一下Node.js的socket通信。 所谓的Echo服务器指的是这样一种服务器:客户端发送一条消息给服务端,服务端就把这条消息原封不动地返回给客户端。 服务端 服务端的实现分为三步: 通过createServer创建一个server服务端 使用server的listen方法监听指定端口,等待客户端接入 通过socket对象来监听data、close等事件,用以完成与客户端的交互 下面是服务端代码: /** * Created by Administrator on 2015/9/8. */ var net = require('net'); // 服务器IP var

  • liaojl
4 min read
nodejs

sqlite3 node-pre-gyp install --fallback-to-build 一直卡着

Windows10 在安装sqlite3@3.1.3时,一直卡在这里 node-pre-gyp install --fallback-to-build 半天半天不动,上网找了很久也没有解决。中间以为是官方库太慢,换了个仓库地址也没用。于是就开始自己折腾了,先是在Github上找到了node-pre-gyp这个项目看了一下README.md,https://github.com/mapbox/node-pre-gyp,看了一下帮助: install - Install pre-built binary for module ... --fallback-to-build: fallback to building

  • liaojl
2 min read
nodejs

【Node.js基础篇】使用readline模块实现Node.js的输入输出

学C++的时候,有cout和cin,Java也有println和Scanner控件,Node.js也有如同C++和Java的标准输入,当然,是用JavaScript实现的,它就是Readline模块(从这个角度看的话,能不能把Node.js当作JavaScript的编译器?)。下面详细介绍一下这个模块,来实现Node.js的控制台输入输出。 什么是Readline Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。使用require("readline")可以引用模块。 如何使用Readline 以使用为角度的话,学习Readline,我们需要学习它的三个部分: 创建Readline实例 学习里面的接口方法 学习监听与处理Readline事件 下面我们通过实例来学习这三个部分。

  • liaojl
4 min read
nodejs

【NodeJs基础篇】(十一)Express 4.x中request参数的获取

基本上每一个Http服务器的编程框架都是对request和response的处理。即处理浏览器对服务器的请求(request)和服务器对浏览器的响应(response)。 request是浏览器给服务器的请求,一般用到的是两种方法:Post和Get(Express也支持其它方法,如put)。两种方法都会指定路由,除此之外,Get方法的使用场景是浏览器向服务器请求数据,比如访问首页,即向浏览器请求首页内容,可以带参数指定需要哪些内容,所以我们需要既能获取路由还能获取参数;Post指的是向服务器推送内容,然后获得一个反馈,所以我们需要能获取Post的内容。 request提供了三种方法来获取参数和内容:request.params,request.query,request.body。 Github源码下载 request.params方法 params方法用于从express路由器获取参数,示例如下: app.

  • liaojl
2 min read
web前端

【Web前端-Gulp】安装Gulp

gulp: 用自动化构建工具增强你的工作流程! —— Automate and enhance your workflow!其有着易于使用,构建快速,高质量插件丰富等众多优势。 一直都想学一下gulp和grunt,借着工作上的一个项目,终于找到机会了。下面开始第一步,安装! 1. 安装node.js 这一步太简单,直接网上去官网下载对应平台的node版本,安装即可(记得将其加入环境变量)。 2. 创建一个项目文件夹,打开一个控制台窗口(有git的可以打开gitbash) 全局安装使用:npm install --global gulp 项目目录下安装使用:npm

  • liaojl
1 min read
2693491512@qq.com