1、官网:http://expressjs.com/

中文:http://www.expressjs.com.cn/

2、HelloWorld

  1)mkdir node-express-demo

  2)cd .\node-express-demo\

  3)新建app.js文件

  4)npm init -y  : 会以app.js为入口文件,创建package.json

  5)npm install express --save  : 本地安装express并将其保存到依赖列表中,会新建package-lock.json文件,package.json也会添加依赖

  package.json

{
"name": "node-express-demo",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}

  6)app.js

const express = require('express')
const app = express() app.get('/', (req, res) => res.send('Hello World!')) app.listen(3000, () => console.log('Example app listening on port 3000!'))

  7)node .\app.js

3、res.send()

  app.js

const express = require('express')
const app = express() app.get('/', (req, res) => res.send('Hello World!')) app.get('/index', function (req, res) {
res.send("中文会乱码吗?");
}); app.get('/json', function (req, res) {
var jsonObj = {name:"张三"};
res.send(jsonObj);
}); app.listen(3000, () => console.log('Example app listening on port 3000!'))

  

  访问http://127.0.0.1:3000/index,结果

  访问http://127.0.0.1:3000/json,结果

4、app.get、app.use和app.all注册路由

  app.get('/add', fn):请求方法必须是get,请求uri必须是"/add"

  app.use():请求方法任意,请求uri是“/add/...”这样的

  app.all():请求方法任意,请求uri === “/add”

5、通过req.params获取路由中的参数

const express = require('express')
const app = express() app.get('/book/:year/:month/:day', function(req, res) {
res.send(req.params);
}); app.listen(3000, () => console.log('Example app listening on port 3000!'))

  访问http://localhost:3000/book/2019/07/08,结果:

6、静态资源

   app.use('/public', express.static(path.join(__dirname, 'public')));

  请求:http://127.0.0.1:3000/public/images/1.jpg

  匹配"/public",并认为"/public"为虚拟路径,然后将/"images/1.jpg" 与 path.join(__dirname, 'public') 拼接成路径,以此路径去找静态资源。

7、Demo

  

  app.js

var express = require('express');
var config = require('./config.js');
var router = require('./router.js'); var app = express(); // 注册路由
app.use('/', router); // app.use('/public', express.static(path.join(__dirname)));
app.listen(config.port, () => console.log('Example app listening on port ' + config.port + '!'))

  config.js

// 配置信息
module.exports = {
port : 3001
};

  router.js

// 路由模块

// 1、创建一个router对象(既是一个对象,也是一个函数)
var path = require('path');
var express = require('express');
var handler = require('./handler.js');
var router = express.Router(); // 2、通过router对象设置(挂载)路由
router.get('/index', handler.index);
router.get('/list', handler.list);
router.use('/public', express.static(path.join(__dirname, 'public'))); // 3、返回router对象
module.exports = router;

  handler.js

// 业务处理模块
var path = require('path'); module.exports.index = index; // 显示主页
module.exports.list = list; // 显示list页面 function index(req, res) {
// res.send('index页面');
res.sendFile(path.join(__dirname, 'pages' , 'index.html'));
} function list(req, res) {
res.send('list页面');
}

另外可以参考:https://blog.csdn.net/sleepwalker_1992/article/details/83417714

最新文章

  1. 企业号查询部门id(改版后)
  2. 17.Java 反射机制
  3. EmguCV控件Emgu.CV.UI.ImageBox及C# picturebox显示图片连续刷新出现闪烁问题
  4. linux查看修改线程默认栈空间大小(ulimit -s)
  5. Repost: Set Delivery Block on SO
  6. android 链接蓝牙不稳定的解决建议
  7. Crazy-Links
  8. 《Windows驱动开发技术详解》之自定义StartIO
  9. web安全:QQ号快速登录漏洞及被盗原理
  10. okio:定义简短高效
  11. MathType7.X链接:https://pan.baidu.com/s/1rQ5Cwk5_CC9UgvgaYPVCCg 提取码:6ojq 复制这段内容后打开百度网盘手机App,操作更方便哦完美解压,无限使用
  12. for...in的改进版for...of
  13. android:ListView bbs Demo
  14. windebug 与 office Home
  15. Linus运行jar包的操作
  16. Django的RestfulAPI框架RestFramework
  17. shell中的环境变量:local,global,export
  18. view_baseInfo
  19. ssh框架配置数据源 数据库连接没有正常释放
  20. 迷你MVVM框架 avalonjs 1.3.1发布

热门文章

  1. [BeiJingWc2008]Gate Of Babylon
  2. 【VS开发】【图像处理】RGB各种格式
  3. Java并发ReadWriteLock接口
  4. 常用DOS命令及编程软件fa
  5. Linux系统搭建并管理Git服务器
  6. Java第三周总结报告
  7. 第一课 初识Linux(一)
  8. Ubuntu下更新Pycharm时权限不够(PyCharm does not have write access to...)
  9. Asp.net Core中文转换成拼音
  10. 实现 RSA 算法之 C 语言实现(第二章)(老物)