使用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 不是映射到某个文件,而是主机名目录,并不是文件,可能是个处理函数 区分:路径 请求方法 来交给不同的函数

三种方法

  1. path app.动词

    例如 app.get

  2. 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);//第一个参数指定基础路由为post
  3. route方式 针对一个路由下不同方法的处理

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服务器的更多相关文章

  1. 初步认识express,并创建web服务器,挂载静态资源

    1.Express简介 1.1什么是Express 官方给出的概念:Express 是基于 Node.js 平台,快速.开放.极简的 Web 开发框架,官方网址 相似用途:Express 的作用和 N ...

  2. Nodejs+Express创建HTTPS服务器

    为了使我的Nodejs服务器提供HTTPS服务,学习了一下如何利用express创建https服务器,现记录如下.(一点一点的积累与掌握吧) 1. Http与Https 介绍 HTTP: 超文本传输协 ...

  3. 使用nodejs的http模块创建web服务器

    使用nodejs的http模块创建web服务器 laiqun@msn.cn Contents 1. web服务器基础知识 2. Node.js的Web 服务器 3. 代码实现 1. web服务器基础知 ...

  4. 使用express创建node服务器的两种方法及区别

    使用express创建node服务器有两种方法,如下所示: 方法一: var express = require('express'); var app = express(); app.listen ...

  5. 如何在Eclipse中创建Web服务器

    使用Eclipse开发Web项目时,需要先配置Web服务器,如果已经配置好Web服务器,就不需要再重新配置了.也就是说,本节的内容不是开发每个项目时,都必须经过的步骤.创建Web服务器的具体步骤如下: ...

  6. 06-Node.js学习笔记-创建web服务器

    创建web服务器 //引用系统模块 const http = require('http'); //创建web服务器 //用于处理url地址 const url = require('url'); c ...

  7. node.js使用express模块创建web服务器应用

    1.安装express模块 在命令行输入 npm install body-parser --save npm install express --save 2.创建app.js文件 /*应用程序入口 ...

  8. express搭建web服务器、路由、get、post请求、multer上传文件、EJS模板引擎的使用

    express官网 postman工具下载地址  multer的npm文档地址 express模板引擎怎么使用  地址:http://www.expressjs.com.cn/guide/using- ...

  9. 在Node.js环境下使用Express创建Web项目实例

    序:如果你还不知道Node.js是什么,那么你可以先看看这篇:Node.js 究竟是什么?或者任何关于它的介绍. 一.安装Node.js 1.进入Node.js官网下载并安装 2.启动cmd输入命令查 ...

随机推荐

  1. 整合改造百度编译器到thinkphp上传图片到OSS

    oss上传类库,放到public下,放到extend下,实例化是报错找不到上传类(我不知道为什么).

  2. .Net cxy 提高效率

    Visual Studio Visual Studio Productivity Power tool: VS 专业版的效率工具. Web Essentials: 提高开发效率,能够有效的帮助开发人员 ...

  3. JavaScript 属性操作

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  4. ACdream 1063 平衡树

    写的很丑的字典树.听王大神的话  需要改进. #include<stdio.h> #include<string.h> #include<math.h> #incl ...

  5. PHP学习过程_Symfony_(2)

    今天正式学习Symfony;首先推荐一篇文章"十分钟学习Symfony"(这是我们老大写的,由于那些搞seo的家伙的粘贴复制也不写出处,老大干脆把代码库给清理了,不过幸好我提前fo ...

  6. HDU 1969 Pie(二分查找)

    Problem Description My birthday is coming up and traditionally I'm serving pie. Not just one pie, no ...

  7. thinkphp 的两种建构模式 第一种一个单入口里面定义两个模块,前台和后台,函数控制模块必须function.php前台加载前台模块的汉书配置文件,后台加载后台模块的汉书配置文件,公共文件共用。第二种架构模式两个单入口文件,分别生成两个应用定义define。。。函数可以定义配置文件。。。。

    thinkphp 的两种建构模式  第一种一个单入口里面定义两个模块,前台和后台,函数控制模块必须function.php前台加载前台模块的汉书配置文件,后台加载后台模块的汉书配置文件,公共文件共用. ...

  8. 戏说HTML5(转)

    如果有非技术人员问你,HTML5是什么,你会怎么回答? 新的HTML规范... 给浏览器提供了牛逼能力,干以前不能干的事...(确切地说应该是给浏览器规定了许多新的接口标准,要求浏览器实现牛逼的功能. ...

  9. 图的连通性:有向图强连通分量-Tarjan算法

    参考资料:http://blog.csdn.net/lezg_bkbj/article/details/11538359 上面的资料,把强连通讲的很好很清楚,值得学习. 在一个有向图G中,若两顶点间至 ...

  10. bug记录_signalr执行$.connnection.testhub结果为空

    最后发现配置文件<appSettings>中多了一句<add key="owin:AutomaticAppStartup" value="false&q ...