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的语法和一段示例: * 数据在名称/值对中 * 数据由逗号分隔 * 花括号保存对象 * 方括号保存数组

  • zgljl2012
5 min read
nodejs

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

1.概述 上一篇 [http://www.zgljl2012.com/node-jsji-chu-pian-si-node-jsshi-xian-wen-jian-lu-you-gong-neng/] 中我们实现了客户端的路由请求,包括直接使用js返回内容响应和使用html文件响应,但上一篇 [http://www.zgljl2012.com/node-jsji-chu-pian-si-node-jsshi-xian-wen-jian-lu-you-gong-neng/] 中最后的显示结果只是一个很普通的html文件,不能使用css样式和js文件,今天我们就通过设置响应文件的mime类型来实现不同文件的响应。 文章会先介绍什么是mime类型,然后介绍两种设置mime类型的方法,第一种是通过后缀名判断文件类型,从而进行响应;第二种是使用第三方mime模块进行响应。 示例是在上一篇 [http://www.zgljl2012.com/node-jsji-chu-pian-si-node-jsshi-xian-wen-jian-lu-you-gong-neng/] 的基础上扩展的。 2

  • zgljl2012
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 = "./file/

  • zgljl2012
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 == '/

  • zgljl2012
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 = "疑是地上霜"; 上述是模块文件,里面定义了一个方法和一个变量, var

  • zgljl2012
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是它的一个内嵌对象,log是 console的方法,

  • zgljl2012
2 min read
postgresql

【PostgreSQL】存取jsonb

从PostgreSQL 9.3开始,json就成了postgres里的一种数据类型,也就是和varchar、int一样,我们表里的一个字段的类型可以为json了。 与此同时,postgres还提供了jsonb格式,jsonb格式是json的二进制形式,二者的区别在于json写入快,读取慢,jsonb写入慢,读取快,但在操作上,二者是没有区别的。下面以jsonb为例。 创建表 假设我们要存储的json数据是这样的: { "id": ID "name":"名字", "age":年龄 } 建表语句如下: create table if not exists name_age

  • zgljl2012
2 min read
ElasticSearch

体验ElasticSearch

Elasticsearch 是一个基于Lucene的搜索服务器,拥有高扩展性的开源全文搜索和统计分析引擎,能够实时存储、查询、分析大规模数据。下面就我们就用ElasticSearch来搭建一个站内搜索引擎。 下载与安装 通过官网下载地址https://www.elastic.co/downloads/elasticsearch 可以下载zip和tar版等的Elasticsearch。我下载的zip版。 下载完后新建一个放置程序的文件夹,解压缩,就可以获得Elasticsearch的程序目录,此时就是安装完毕了。 启动 安装好后,进入bin目录,然后打开elasticsearch.bat (windows用户,如果是Linux的话,打开elasticsearch)。 启动后,访问一下http://localhost:9200/,如果出现了Elasticsearch服务器的信息,

  • zgljl2012
3 min read
Chrome

解决360篡改Chrome的主页

在浏览器打开一个新的标签页,输入 chrome://version/ 然后可以看一个包含Chrome版本的信息页面,可以看一下命令行这一项,有这一句: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --flag-switches-begin --flag-switches-end http://hao.360.cn/?src=lm&ls=n36a7f6a197 这里指定了一启动Chrome就打开360主页,所以修改主页什么的是没有作用的。 接下来看到可执行文件路径这一项,我的是: C:\Program Files

  • zgljl2012
1 min read
算法

常用算法思想

1. 分治法 将复杂问题分解成两个或多个子问题,再将子问题又分为两个或多个更小的子问题……直到到达了有解的基本问题。最后,将子问题的解合并成原文题的解。如排序算法、傅里叶变换等。 2. 动态规划 每次决策依赖于当前的状态,然后会引起状态的转移。一个决策序列就是在变化的状态中产生出来的,这种多阶段最优化决策解决问题的过程就称之为动态规划。如最短路径等。 3. 贪心算法 求解问题时,不考虑全局情况,只贪心于当前的最好的解,所做出的仅仅是某种意义上局部最优解。如Prim算法等。 4. 回溯算法 回溯算法实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回到上一步,尝试别的路径。如八皇后问题。

  • zgljl2012
2 min read
zgljl2012@gmail.com