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架设的更多相关文章

  1. spring-boot基础概念与简单应用

    1.spring家族 2.应用开发模式 2.1单体式应用 2.2微服务架构 微服务架构中每个服务都可以有自己的数据库  3.微服务架构应当注意的细节 3.1关于"持续集成,持续交付,持续部署 ...

  2. nginx架构与基础概念

    1       Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...

  3. 快速入门系列--WCF--01基础概念

    转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...

  4. JavaWeb开发技术基础概念回顾篇

    JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...

  5. zabbix监控的基础概念、工作原理及架构(一)

    zabbix监控的基础概念.工作原理及架构 转载于网络 一.什么是zabbix及优缺点 Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...

  6. RabbitMQ基础概念及使用

    RabbitMQ RabbitMQ是什么? RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议.MQ全称为Message Q ...

  7. WiFi相关基础概念

    转自:https://blog.csdn.net/lbaihao/article/details/73250798 一.WiFi相关基础概念 1.什么是wifi 我们看一下百度百科是如何定义的: Wi ...

  8. JavaWeb零基础入门-01 基础概念说明

    一.序言 从学校出来到实习,发现学校学的东西太过基础,难于直接运用于工作中.而且工作中,现在都以web开发为主,学校开了web开发相关课程.自己学的不够深入,所以本人自学JavaWeb开发,介于学习巩 ...

  9. [转帖]从0开始的高并发(一)--- Zookeeper的基础概念

    从0开始的高并发(一)--- Zookeeper的基础概念 https://juejin.im/post/5d0bd358e51d45105e0212db 前言 前面几篇以spring作为主题也是有些 ...

随机推荐

  1. iOS 百度地图判断用户是否拖动地图的检测方法

    前言:百度地图API并没有提供移动地图时的回调接口 实现:通过判断当前地图的中心位置是否为用户位置来判断,代码如下 -(void)mapView:(BMKMapView *)mapView regio ...

  2. FMDB数据库使用

    创建数据库路径 NSString* docsdir = [NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainM ...

  3. #leetcode刷题之路47-全排列 II

    给定一个可包含重复数字的序列,返回所有不重复的全排列.示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]] 之前的https://www.cnblogs.com/ ...

  4. MySQL->复制表[20180509]

    MySQL复制表     通常复制表所采用CREATE TABLE .... SELECT 方式将资料复制,但无法将旧表中的索引,约束(除非空以外的)也复制.   完整复制MySQL数据表所需步骤: ...

  5. 默认情况下eth0网卡配置文件路径及客户端DNS的路径

    默认情况下eth0网卡配置文件路径及客户端DNS的路径? eth0 网卡配置文件路径如下: /etc/sysconfig/network-scripts/ifcfg-eth0 客户端DNS的路径如下: ...

  6. Vue2 轮播图组件 slide组件

    Vue2原生始轮播图组件,支持宽度自适应.高度设置.轮播时间设置.左右箭头按钮控制,圆点按钮切换,以及箭头.圆点按钮是否显示. <v-carousel :slideData="slid ...

  7. 【Memcached】原理、体系架构、基本操作及路由算法

    1. 什么是Memcached 要了解Memcached首先要到官网上去看官方对它的描述.Memcached的官网网站是:http://memcached.org/,官方对Memcached的描述如下 ...

  8. [转]windows下多个python版本共存,pip使用

    windows下多个python版本共存,pip使用 2017年09月13日 17:21:30 阅读数:2574 一.同时装了Python3和Python2,怎么区分 了解python的人都知道pyt ...

  9. Chino 操作系统开发日志 (1) - 为 IoT 而生

    引言 很多人都听说过 IoT (物联网)这个词,越来越多的人在装修时开始选择智能家居,很多人也购买智能音箱做智能家居控制,想必未来一定是 AI + 物联网的时代. 一种技术要发展并走向成熟必须要降低门 ...

  10. python3 用户登录验证的小功能

    用户登录验证,记录一下,还需要修改黑名单不合理 #!/usr/bin/env python3 ''' 需求:编写登录接口 1.输入用户名和密码 2.验证用户密码成功后输出欢迎消息 3.3次没有验证通过 ...