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的语法和一段示例: * 数据在名称/值对中 * 数据由逗号分隔 * 花括号保存对象 * 方括号保存数组
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
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/
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 == '/
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
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的方法,
leetcode 【LeetCode】198. House Robber 问题描述 You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is
leetcode 【LeetCode】190. Reverse Bits 问题描述 Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000). Follow up: If this function is
leetcode 【LeetCode】189. Rotate Array 问题描述 Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to
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
leetcode 【LeetCode】172. Factorial Trailing Zeroes 问题描述 Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in logarithmic time complexity. 阶乘末尾0的个数 分析 偶数乘以5末尾才会出现0,计算1-n出现含有5的个数即可。 代码 class Solution { public: int trailingZeroes(int
leetcode 【LeetCode】171. Excel Sheet Column Number 问题分析 Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, return its corresponding column number. For example: A -> 1 B -> 2 C ->
leetcode 【LeetCode】169. Majority Element 问题描述 Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times. You may assume that the array is non-empty and
python 【Python】使用Requests Put JSON数据 使用requests模块put和post json数据时,需要使用json模块的dumps函数,如下: import requests import json url = "http://localhost:9900" data = { "first_name":"John", "last_name":"Smith", "age":18 } response = requests.put(url+"/test/1",data=json.dumps(data)) print(response.
leetcode 【LeetCode】168. Excel Sheet Column Title 问题描述 Given a positive integer, return its corresponding column title as appear in an Excel sheet. For example: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA
leetcode 【LeetCode】165. Compare Version Numbers 问题描述 Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0. You may assume that the version strings are non-empty and contain only
leetcode 【LeetCode】160. Intersection of Two Linked Lists 问题描述 Write a program to find the node at which the intersection of two singly linked lists begins. For example, the following two linked lists: A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1
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服务器的信息,
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
angularjs 【AngularJS】ngDialog中更新$scope没效果 解决办法,需要将$scope绑定到Dialog中,如下: ngDialog.openConfirm({ template: 'modalDialogId', className: 'ngdialog-theme-default', scope:$scope });
算法 常用算法思想 1. 分治法 将复杂问题分解成两个或多个子问题,再将子问题又分为两个或多个更小的子问题……直到到达了有解的基本问题。最后,将子问题的解合并成原文题的解。如排序算法、傅里叶变换等。 2. 动态规划 每次决策依赖于当前的状态,然后会引起状态的转移。一个决策序列就是在变化的状态中产生出来的,这种多阶段最优化决策解决问题的过程就称之为动态规划。如最短路径等。 3. 贪心算法 求解问题时,不考虑全局情况,只贪心于当前的最好的解,所做出的仅仅是某种意义上局部最优解。如Prim算法等。 4. 回溯算法 回溯算法实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回到上一步,尝试别的路径。如八皇后问题。