ExpressJS基础概念及简单Server架设
NodeJS
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。
NodeJS安装:http://nodejs.cn/
模块(module)路径解析规则:
1 内置模块 如果 require 函数请求的是一内置模块,如 http、fs等,则直接返回内部模块的导出对象。
2 node_modules 目录 NodeJS定义了一个特殊的node_modules 目录用于存放模块。例如某个模块的绝对路径是 /home/user/hello.js,在该模块中使用 require('foo/bar') 方式加载模块时,则NodeJS依次尝试使用下面的路径。
/home/user/node_modules/foo/bar
/home/node_modules/foo/bar
/node_modules/foo/bar
3 NODE_PATH 环境变量 NodeJS可通过 NODE_PATH 环境变量来指定额外的模块搜索路径。例如定义了以下 NODE_PATH 变量值:
NODE_PATH=/home/user/lib;/home/lib
当使用 require('foo/bar') 的方式加载模块时,则 NodeJS 依次尝试以下路径。
/home/user/lib/foo/bar
/home/lib/foo/bar
参考资料:
Change node_modules location http://stackoverflow.com/questions/18974436/change-node-modules-location
《七天学会NodeJS》
ExpressJS
Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
Express 安装
npm install -g express
-g 表示全局安装 ExpressJS,可以在任何地方使用它。
ExpressJS 架构示意图

参考资料:
Creating RESTful APIs With NodeJS and MongoDB Tutorial http://adrianmejia.com/blog/2014/10/01/creating-a-restful-api-tutorial-with-nodejs-and-mongodb/#expressjs
ExpressJS中文网 http://www.expressjs.com.cn/
创建服务(Server)
加载所需模块
var express = require("express"); var http = require("http");
添加中间件(Middleware)作 request 拦截和处理分发
app.use(function(req, res, next){
console.log("first middleware");
if (req.url == "/"){
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("Main Page!");
}
next();
});
app.use(function(req, res, next){
console.log("second middleware");
if (req.url == "/about"){
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("About Page!");
}
next();
});
创建服务并监听
http.createServer(app).listen(2015);
示例文件 app.js
运行 NodeJS,并访问 http://localhost:2015/。
参考资料:
透析Express.js http://www.cnblogs.com/hyddd/p/4237099.html
ExpressJS基础概念及简单Server架设的更多相关文章
- spring-boot基础概念与简单应用
1.spring家族 2.应用开发模式 2.1单体式应用 2.2微服务架构 微服务架构中每个服务都可以有自己的数据库 3.微服务架构应当注意的细节 3.1关于"持续集成,持续交付,持续部署 ...
- nginx架构与基础概念
1 Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...
- 快速入门系列--WCF--01基础概念
转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...
- JavaWeb开发技术基础概念回顾篇
JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...
- zabbix监控的基础概念、工作原理及架构(一)
zabbix监控的基础概念.工作原理及架构 转载于网络 一.什么是zabbix及优缺点 Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...
- RabbitMQ基础概念及使用
RabbitMQ RabbitMQ是什么? RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议.MQ全称为Message Q ...
- WiFi相关基础概念
转自:https://blog.csdn.net/lbaihao/article/details/73250798 一.WiFi相关基础概念 1.什么是wifi 我们看一下百度百科是如何定义的: Wi ...
- JavaWeb零基础入门-01 基础概念说明
一.序言 从学校出来到实习,发现学校学的东西太过基础,难于直接运用于工作中.而且工作中,现在都以web开发为主,学校开了web开发相关课程.自己学的不够深入,所以本人自学JavaWeb开发,介于学习巩 ...
- [转帖]从0开始的高并发(一)--- Zookeeper的基础概念
从0开始的高并发(一)--- Zookeeper的基础概念 https://juejin.im/post/5d0bd358e51d45105e0212db 前言 前面几篇以spring作为主题也是有些 ...
随机推荐
- CSP 试题编号201803-1 Java实现
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner input ...
- JDBC——连接数据库的代码
第一步:在SCR下创建一个file,写好数据库的相关信息. #oracle数据库 driver=oracle.jdbc.driver.OracleDriver jdbcUrl=jdbc:oracle: ...
- 【Linux资源管理】iotop命令监控磁盘使用情况
一.iotop工具介绍 I/O可谓是数据库\服务器的最大瓶颈问题了,在使用top.nmon.zabbix.sar等工具监控I/O时,要么没有I/O监控(如top.zabbix),要么仅仅监控到磁盘层面 ...
- POJ3074 Sudoku(lowbit优化搜索)
In the game of Sudoku, you are given a large 9 × 9 grid divided into smaller 3 × 3 subgrids. For exa ...
- C++练习 | 递归创建二叉树并求叶子结点的数值和
#include <iostream> using namespace std; struct Tree { int data; Tree *lchild; Tree *rchild; } ...
- querySelectorAll 和 getElementBy 方法的区别
作者:简生 链接:https://www.zhihu.com/question/24702250/answer/28695133 来源:知乎 1. W3C 标准 querySelectorAll 属于 ...
- Java使用JodaTime处理时间
简介 在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的 ...
- 1、win10下的Docker+Redis 的下载及简单使用
一.下载Docker: 因为始终注册docker账号不成功,所以在这里点击下载. 选中docker-for-windows/ 选中beta/ 下载这个.msi文件 二.安装 1.安装.msi文件,桌面 ...
- 一图看懂Kafka On Zookeeper
Kafka On Zookeeper,点击看大图
- spark 例子倒排索引
spark 例子倒排索引 例子描述: [倒排索引(InvertedIndex)] 这个例子是在一本讲spark书中看到的,但是样例代码写的太java化,没有函数式编程风格,于是问了些高手,教我写了份函 ...