使用express创建web服务器
|
laiqun@msn.cn
|
Contents
1. 简单的express服务器
安装npm install express使用npm找不到源,改用cnpm
第一版本
var express = require('express');
var app = express();
app.listen(18001,function afterlisten(){
console.log('express running on http://localhost:18001');
}
);
运行后,在浏览器打开localhost:18001 提示不能GET /
解决方法加入路由
var express = require('express');
var app = express();
app.get('/',function(req,res){
res.end('hello\n');
});
app.listen(18001,function afterlisten(){
console.log('express running on http://localhost:18001');
}
);
运行后,在浏览器打开localhost:18001返回hello * 除了手写,express还提供了生成工具,
先来安装 npm install -g express-generator 如何使用 express 你的项目名字,会产生了一个目录
执行文件在bin目录下 无法运行 ,需要安装必须的包 npm install
2. 静态文件服务
使用静态文件中间件
var express = require('express');
var app = express();
app.use(express.static('public'));//public 为静态文件目录
app.get('/',function(req,res){
res.end('hello\n');
});
app.listen(18001,function afterlisten(){
console.log('express running on http://localhost:18001');
}
);
创建静态文件 mkdir public vim public/test.txt 写入hello world
然后 使用curl http://localhost:180001/text.txt即可访问
3. 路由
分析URL: 协议 域名 目录 文件参数 http://www.baidu.com/doc/hello.txt?source=chrome&from=xxx 分析URL: 协议 域名 目录 文件参数 http://www.baidu.com/doc/hello.txt#xx xx为锚点或js路由 路由的含义 :没有扩展名的URL 不是映射到某个文件,而是主机名目录,并不是文件,可能是个处理函数 区分:路径 请求方法 来交给不同的函数
三种方法
path app.动词
例如 app.get
Router 例如
var Router = express.Router();
/** http://example.com/post/add* http://example.com/post/list* 存在公共前缀,最好用router来组织 */
Router.get('/add',function(req,res){
res.end('Router /add\n');
});
Router.get('lsit',funciton(req,res){
res.end('Router /list\n');
});
app.use('/post',Router);//第一个参数指定基础路由为postroute方式 针对一个路由下不同方法的处理
app.route('/article')
.get(function(req,res){
res.end('route /article get\n');
})
.post(function(req,res){
res.end('route /article get\n');
});
//测试 curl -POST htpp://localhost:180001/article
路由参数
//http://example.com/new/123
app.param('newId',function(req,res,next,newsId){
req.newsId = newsId;//URL参数中的值
next();//执行完之后调用的,即使返回给了用户数据,也会执行//打印请求日志 morgan
});
app.get('/news/:newsId',function(req,jres){
res.end('newsId: '+req.newsId+'\n');
})
4. 中间件
基于Connect。分层处理。每层使用一个功能
使用express创建web服务器的更多相关文章
- 初步认识express,并创建web服务器,挂载静态资源
1.Express简介 1.1什么是Express 官方给出的概念:Express 是基于 Node.js 平台,快速.开放.极简的 Web 开发框架,官方网址 相似用途:Express 的作用和 N ...
- Nodejs+Express创建HTTPS服务器
为了使我的Nodejs服务器提供HTTPS服务,学习了一下如何利用express创建https服务器,现记录如下.(一点一点的积累与掌握吧) 1. Http与Https 介绍 HTTP: 超文本传输协 ...
- 使用nodejs的http模块创建web服务器
使用nodejs的http模块创建web服务器 laiqun@msn.cn Contents 1. web服务器基础知识 2. Node.js的Web 服务器 3. 代码实现 1. web服务器基础知 ...
- 使用express创建node服务器的两种方法及区别
使用express创建node服务器有两种方法,如下所示: 方法一: var express = require('express'); var app = express(); app.listen ...
- 如何在Eclipse中创建Web服务器
使用Eclipse开发Web项目时,需要先配置Web服务器,如果已经配置好Web服务器,就不需要再重新配置了.也就是说,本节的内容不是开发每个项目时,都必须经过的步骤.创建Web服务器的具体步骤如下: ...
- 06-Node.js学习笔记-创建web服务器
创建web服务器 //引用系统模块 const http = require('http'); //创建web服务器 //用于处理url地址 const url = require('url'); c ...
- node.js使用express模块创建web服务器应用
1.安装express模块 在命令行输入 npm install body-parser --save npm install express --save 2.创建app.js文件 /*应用程序入口 ...
- express搭建web服务器、路由、get、post请求、multer上传文件、EJS模板引擎的使用
express官网 postman工具下载地址 multer的npm文档地址 express模板引擎怎么使用 地址:http://www.expressjs.com.cn/guide/using- ...
- 在Node.js环境下使用Express创建Web项目实例
序:如果你还不知道Node.js是什么,那么你可以先看看这篇:Node.js 究竟是什么?或者任何关于它的介绍. 一.安装Node.js 1.进入Node.js官网下载并安装 2.启动cmd输入命令查 ...
随机推荐
- 3.linux常用软件的安装方法
linux 上的软件不像windows上直接运行安装那么容易,在linux上有很多不同的安装包,大概常见的就有deb.tar.gz.tar.bz(tar.bz2).rpm等类型文件 1.deb文件安装 ...
- intellij idea 12 搭建maven web项目 freemarker + spring mvc(续)
上次有2个东西没整明白,一个就是controller的注解使用RequestMappingHandlerAdapter报错 No adapter for handler [controller.Use ...
- 关于对象存入NSUserDefaults
#import <Foundation/Foundation.h> @interface Student : NSObject <NSCoding> @property (no ...
- git安装后配置--config
安装git后需要配置一下环境,每台计算机上只需要配置一次,程序升级时会保留配置信息. 你可以在任何时候再次通过运行命令来修改它们. 通过git config命令来配置环境变量,这些变量存储在三个不同的 ...
- ecshop里的$_CFG从哪来的
以前经常有朋友问我, ecshop系统的$_CFG这个数组是从哪里来的,在哪里定义并赋值的. 下面就给大家说一下这个全局变量 $GLOBALS['_CFG']. ecshop里的 $_CFG数组主 ...
- js nextSibling属性和previousSibling属性概述及使用注意
1:nextSibling属性 该属性表示当前节点的下一个节点(其后的节点与当前节点同属一个级别):如果其后没有与其同级的节点,则返回null. 需要特别注意的是:该属性在不同的浏览器中的执行结果并不 ...
- Linux中kettle连接hadoop并传数据(5)
http://wiki.pentaho.com/display/BAD/Loading+Data+into+HDFS 新建job
- HDU 1081 To The Max(动态规划)
题目链接 Problem Description Given a two-dimensional array of positive and negative integers, a sub-rect ...
- python--tile函数
1.函数的定义与说明 tile函数位于python模块 numpy.lib.shape_base中,功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组. 2.函数操作 ...
- KVM 虚拟机基本管理及常用命令
KVM的基本管理 1.查看KVM虚拟机配置文件 #Kvm虚拟机默认配置文件位置 [root@kvm qemu]# pwd /etc/libvirt/qemu [root@kvm qemu]# ll t ...