express将简单的服务跑起来过程
来源:互联网 发布:数据包与数据帧的区别 编辑:程序博客网 时间:2024/06/09 20:30
有道云笔记阅读:http://note.youdao.com/groupshare/?token=6BD1FC7CE6094FCC88AD38363B5AAF29&gid=25271447
简单运行步骤
1. 安装
/* 进入项目文件中*/$ npm initentry point: (app.js) /*指定项目入口文件*/$ npm install express --save /* 下载express */
2. 编写入口文件app.js
var express = require('express');var app = express(); app.get('/',function(req,res){ res.send('hello world'); });var server = app.listen(9000,function(){ /*监听端口*/ var host = server.address().address; var port = server.address().port; console.log('example app listening at http://%s:%s',host,port); /*控制台输出*/});
3. 运行 (http://localhost:9000)
$ node app.js /*运行入口文件*/
简单语法
(1) 简单的express路由
var express = require('express');var app = express();/*路由,接受get,pust,delete等请求*/app.get('/',function(req,res,next){ res.send('hello'); //响应,将hello返回给浏览器页面显示})app.post('/', function (req, res) { res.send('Got a POST request');});app.all('/secret',function(req,res,next){ console.log('在/secret路径下,无论是什么请求,都加载中间件');});
路由路径
(a). // 字符串路由路径 app.get('/random.text',function(req,res){ .....// 处理逻辑 });(b). // 字符串模式路由 app.get('/ab?cd',function(req,res){ // 匹配/abcd 和/acd .... });(c). // 正则表达式路由 app.get(/.*fly$/,function(req,res){ // 匹配以fly结尾的字符路由,如butterfly ... });
- 路由句柄
(a). //使用一个回调函数处理路由 app.get('/',function(req,res){ res.send('hello'); });(b). // 使用多个回调函数处理路由,记得指定next对象 app.get('/',function(req,res,next){ console.log('response will be send by the next function'); next(); },function(req,res){ res.send('hello from b'); })(c). // 使用回调函数数组处理路由 var cb0 = function (req, res, next) { console.log('CB0'); next(); } var cb1 = function (req, res, next) { console.log('CB1'); next(); } var cb2 = function (req, res) { res.send('Hello from C!'); } app.get('/example/c', [cb0, cb1, cb2]);
- 响应方法
res.download() // 提示下载文件res.end() // 终结响应处理程序res.render() // 渲染视图模板res.send() // 发送各种类型的响应
(2) express托管静态文件
app.use('/static',express.static('public')); /*将public下的静态文件资源都托管到/static下,可以直接通过带有“/staitc”前缀的地址来访问public目录下的文件*/例如: http://localhost:9000/static/images/logo.png 可以在浏览器直接访问该logo
(3) 渲染html文件
res.render() /*渲染html*/res.sendFile() /*直接对外输出html文件*/
express.Router
// 写在前面
(1) 可使用app.route()创建路由路径的链式路由句柄
app.route('/book') /*路径在一个地方指定,有助于创建模块化的路由,减少代码冗余和拼写错误*/ .get(function(req, res) { res.send('Get a random book'); }) .post(function(req, res) { res.send('Add a book'); }) .put(function(req, res) { res.send('Update the book'); });
express.Router类创建模块化,可挂载的路由句柄。Router实例是一个完整的中间件和路由系统.
// 在app目录下创建birds.js var express = require('express'); var router = express.Router(); // 实例化 // 该路由使用的中间件 router.use(function timeLog(req,res,next){ console.log("time:",Date.now()); next(); }); // 定义网页的路由 router.get('/',function(req,res,next){ res.send('这是首页'); }) router.get('/about',function(req,res,next){ res.send('这是详情页'); }) module.exports = router;
然后再应用中加载路由模块
var birds = require('./birds');...app.use('/birds', birds);
应用即可处理localhost:9000/birds/和localhost:9000/birds/about的请求
1 0
- express将简单的服务跑起来过程
- 简单的实现将C字符串数组连接起来
- 如何用node+express创建简单的服务
- express的简单安装
- 测试简单的asio异步服务过程
- 终于将官方网站的osgi demo跑起来了
- linux下简单将python的django开发框架运行起来
- 使用node.js ,Express, 和Mongodb 简历一个简单的Restful 网页服务-part1
- 本文将引导你使用XNA Game Studio Express一步一步地创建一个简单的游戏
- sqoop简单的demo 先跑起来再说
- nodejs+express的简单示例
- 一个简单的express应用
- express-session的简单使用说明
- 将一些大神的博客收集起来
- 基于express的精简web服务
- 使用express的基本web服务
- nodejs+express搭建自己的服务框架
- nodejs+express搭建简单的电影网站之 express安装
- 热修复tinker 更新.so出现的问题
- 使用Timer实现网页匀速加载的进度条
- Android BLE开发总结
- Java中的24种设计模式与7大原则
- C# 正则表达式的使用
- express将简单的服务跑起来过程
- Linux下Tomcat开机自动启动
- Java线程(二)
- Linux设备驱动程序——高级字符驱动程序操作(阻塞型I/O)
- 模拟器中ramdisk.img或者recovery.img重新解压打包步骤。
- 自然数幂和
- Python 3.5 检测文件编码
- Redis和Memcached的区别
- css高级