node.js入门学习(六)--express
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
最新文章
- 企业号查询部门id(改版后)
- 17.Java 反射机制
- EmguCV控件Emgu.CV.UI.ImageBox及C# picturebox显示图片连续刷新出现闪烁问题
- linux查看修改线程默认栈空间大小(ulimit -s)
- Repost: Set Delivery Block on SO
- android 链接蓝牙不稳定的解决建议
- Crazy-Links
- 《Windows驱动开发技术详解》之自定义StartIO
- web安全:QQ号快速登录漏洞及被盗原理
- okio:定义简短高效
- MathType7.X链接:https://pan.baidu.com/s/1rQ5Cwk5_CC9UgvgaYPVCCg 提取码:6ojq 复制这段内容后打开百度网盘手机App,操作更方便哦完美解压,无限使用
- for...in的改进版for...of
- android:ListView bbs Demo
- windebug 与 office Home
- Linus运行jar包的操作
- Django的RestfulAPI框架RestFramework
- shell中的环境变量:local,global,export
- view_baseInfo
- ssh框架配置数据源 数据库连接没有正常释放
- 迷你MVVM框架 avalonjs 1.3.1发布
热门文章
- [BeiJingWc2008]Gate Of Babylon
- 【VS开发】【图像处理】RGB各种格式
- Java并发ReadWriteLock接口
- 常用DOS命令及编程软件fa
- Linux系统搭建并管理Git服务器
- Java第三周总结报告
- 第一课 初识Linux(一)
- Ubuntu下更新Pycharm时权限不够(PyCharm does not have write access to...)
- Asp.net Core中文转换成拼音
- 实现 RSA 算法之 C 语言实现(第二章)(老物)