随笔分类 - Node.js
摘要:简介 NodeJS可以感知和控制自身进程的运行环境和状态,也可以创建子进程并与其协同工作,这使得NodeJS可以把多个程序组合在一起共同完成某项工作,并在其中充当胶水和调度器的作用 常用API "Process" 任何一个进程都有启动进程时使用的命令行参数,有标准输入标准输出,有运行权限,有运行环境
阅读全文
摘要:简介 在Linux系统下,监听1024以下端口需要root权限。因此,如果想监听80或443端口的话,需要使用 命令启动程序。 常用API "HTTP" 模块提供两种使用方式: 作为服务端使用时,创建一个HTTP服务器,监听HTTP客户端请求并返回响应。 作为客户端使用时,发起一个HTTP客户端请求
阅读全文
摘要:遍历目录 递归算法 遍历目录时一般使用递归算法,否则就难以编写出简洁的代码。 递归算法与数学归纳法类似,通过不断缩小问题的规模来解决问题 遍历算法 目录是一个树状结构,在遍历时一般使用深度优先+先序遍历算法。 深度优先,意味着到达一个节点后,首先接着遍历子节点而不是邻居节点。 先序遍历,意味着首次到
阅读全文
摘要:使用微信开发前准备 微信公众开发者 "平台" 注册开 "发者账号" 获取权限; 安装包: , 微信公众平台操作 "登录" 之后,得到appID和appsecret 根据appID和appsecret获取 "access token" 获取测试用户的ID,让测试用户扫测试二维码 获取 "用户基本信息"
阅读全文
摘要:数据库连接操作,以mongodb为例 安装 修改datasources.json 在 中添加数据类型,以users为例 //在 中设置 "properties": { "email": { "type": "string", "index": { //因为这个特殊的属性值,需要添加 ,这里放在ser
阅读全文
摘要:关于loopback的相关 "blog" 安装: "官网" 添加视图和静态资源 静态资源路径在middleware.json中配置 页面路径 原本路径是要写在server/boot.roots.js文件中,可以将路径单独放到一个文件夹中; 添加server/routers 修改server/boot
阅读全文
摘要:NodeJS不仅能做网络编程,而且能够操作文件。 拷贝 小文件拷贝 是一个全局变量,可通过 获得命令行参数。 固定等于NodeJS执行程序的绝对路径, 固定等于主模块的绝对路径,因此第一个命令行参数从 这个位置开始。 使用 从源路径读取文件内容,并使用 将文件内容写入目标路径; 大文件拷贝 这种一次
阅读全文
摘要:模块 require(函数) 用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。 模块名可使用相对路径(以./开头),或者是绝对路径(以/或C:之类的盘符开头;注意单个模块名默认指向node_modules文件)。 模块名中的.js扩展名可以省略。 可以加载和使用一个JSON
阅读全文
摘要:静态内容是指应用程序不会基于每个请求而去改变的资源。 多媒体: 图片、视频和音频文件 CSS: JavaScript 二进制下载文件: 这包含所有种类:PDF、压缩文件、安装文件等类似的东西。 借助一些JavaScript,浏览器可以使用未经编译的LESS。这种方式会影响性能,所以不推荐使用。 注意
阅读全文
摘要:简介 “Web服务”是一个通用术语,指任何可以通过HTTP访问的应用程序编程界面(API); 我们的重点是提供“REST风格”的服务,与其交互要更直接得多。 REST表示“表述性状态传输”(Representational State Transfer), REST的正规描述很复杂,需要计算机科学形
阅读全文
摘要:组织路由 在主应用程序文件中定义所有路由太笨重了。那样不仅会导致那个文件一直增长,还不利于功能的分离,因为那个文件里已经有很多东西了。 四条组织路由的指导原则 给路由处理器用命名函数: 到目前为止,我们都是在行内写路由处理器的,实际上就是马上在那里定义处理路由的函数。这对于小程序或原型来说没问题,但
阅读全文
摘要:简介 路由是网站或Web服务中最重要的一个方面;路由是将请求(由URL和HTTP方法指定)路由到处理它们的代码去的一种机制。 路由过去是基于文件的,这很简单,但不灵活。 IA 是指内容的概念性组织。在考虑路由之前有一个可扩展(但不过于复杂的)IA会为后续工作提供巨大的好处。 有些建议能帮你实现持久的
阅读全文
摘要:简介 所有网站和Web应用程序(除了最简单的)都需要某种持久化方式,即某种比易失性内存更持久的数据存储方式,这样当遇到服务器宕机、断电、升级和迁移等情况时数据才能保存下来。 文件系统持久化 实现持久化的一种方式是将数据存到扁平文件中(“扁平”的意思是文件没有内在结构,只是一串字节)。Node通过 (
阅读全文
摘要:处理未捕获的异常 在Node的异步世界中,未捕获的异常是特别需要关注的问题 在Express执行路由处理器时,它把它们封装在一个try/catch块中,所以这不是一个真正的未捕获异常。 Express会在服务器端记录异常,并且访问者会得到一个丑陋的栈输出。然而服务器是稳定的,其他请求还能得到正确处理
阅读全文
摘要:执行环境 Express支持执行环境的概念,它是一种在生产、开发或测试模式中运行应用程序的方法。实际上你可以按自己的想法创建很多种不同的环境。 要记住,开发、生产和测试是“标准”环境,Express、Connect以及第三方中间件可能会基于这些环境做出决定。 换句话说,如果你有一个“临时”环境,则无
阅读全文
摘要:简介 Node和Express都没有内置的邮件发送功能,所以必须使用第三方模块。推荐Andris Reinman的 "Nodemailer" SMTP、MSA和MTA 发送邮件的通用语言是简单邮件传输协议(SMTP) 尽管用SMTP直接发送一封邮件给接收者的邮件服务器是有可能的,但这通常是个非常糟糕
阅读全文
摘要:简介 从概念上讲,中间件是一种功能的封装方式,具体来说就是封装在程序中处理HTTP请求的功能。 中间件是在管道中执行的,在Express程序中,通过调用app.use向管道中插入中间件。(在Express 4.0中,中间件和路由处理器是按它们的连入顺序调用的) 在管道的最后放一个“捕获一切”请求的处
阅读全文
摘要:简介 HTTP是无状态协议。当浏览器中加载页面,然后转到同一网站的另一页面时,服务器和浏览器都没有任何内在的方法可以认识到,这是同一浏览器访问同一网站。换一种说法,Web工作的方式就是在每个HTTP请求中都要包含所有必要的信息,服务器才能满足这个请求。 所以需要用某种办法在HTTP上建立状态,于是便
阅读全文
摘要:处理AJAX表单 用Express处理AJAX表单非常简单;甚至可以使用相同的处理程序来处理AJAX请求和常规的浏览器回退。 HTML文件 (/views/newsletter.handlebars) 应用程序文件 Express提供了两个方便的属性: 和`req.accepts req.xhr t
阅读全文
摘要:从用户那里收集信息的常用方法就是使用HTML表单。无论是使用浏览器提交表单,还是使用AJAX提交,或是运用精巧的前端控件,底层机制通常仍旧是HTML表单。 向服务器发送客户端数据 向服务器发送客户端数据有两种方式:查询字符串和请求正文。通常,如果是使用查询字符串,就发起了一个GET请求;如果是使用请
阅读全文