Node.js Express框架

node.js express框架知识点详细解析,如下:

express框架特性:

可以设置中间件来响应 HTTP 请求。

定义了路由表用于执行不同的 HTTP 请求动作。

可以通过向模板传递参数来动态渲染 HTML 页面。

安装 express 并将其保存到依赖列表中: npm install express --save

安装重要模块:

npm install body-parser --save

npm install cookie-parser --save

npm install multer --save

查看express版本:npm list express

使用express框架输出hello world:

//请求express

var express = require('express');

//创建express对象

var app = express();

//创建路由

app.get('/', function (req, res) {

//输出hello world

res.send('Hello World');

})

//创建服务器

var server = app.listen(8081, function () {

console.log("访问地址为 http://127.0.0.1:8081")

})

express 使用回调函数的参数request 和 response 对象来处理请求和响应的数据:

app.get('/', function (req, res) {

// --

})

路由详解:

var express = require('express');

var app = express();

// 主页输出 "Hello World,访问http://127.0.0.1:8081

app.get('/', function (req, res) {

console.log("主页 GET 请求");

res.send('Hello GET');

})

// POST 请求

app.post('/', function (req, res) {

console.log("主页 POST 请求");

res.send('Hello POST');

})

// 页面响应,访问http://127.0.0.1:8081/del_user

app.get('/del_user', function (req, res) {

console.log("/del_user 响应 DELETE 请求");

res.send('删除页面');

})

// 页面 GET 请求,访问http://127.0.0.1:8081/list_user

app.get('/list_user', function (req, res) {

console.log("/list_user GET 请求");

res.send('用户列表页面');

})

// 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求,访问http://127.0.0.1:8081/ab*cd

app.get('/ab*cd', function(req, res) {

console.log("/ab*cd GET 请求");

res.send('正则匹配');

})

var server = app.listen(8081, function () {

console.log("访问地址为 http://127.0.0.1:8081")

})

在项目目录下创建public/images目录,并且在images目录中放入1.jpg文件 

设置静态文件路径:app.use('/public', express.static('public'));

查看静态文件中的图片,创建3.js文件:

var express = require('express');

var app = express();

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

app.get('/', function (req, res) {

res.send('Hello World');

})

var server = app.listen(8081, function () {

console.log("访问地址为 http://127.0.0.1:8081")

})

执行程序:node 3.js 

在浏览器中访问http://127.0.0.1:8081/public/images/1.jpg

get方法详解:

创建4.html文件:


<html>
<body>

<!--设置行动地址-->
<form action="http://127.0.0.1:8081/process_get" method="GET">

<!--设置元素名字-->
First Name: <input type="text" name="first_name">  <br>
Last Name: <input type="text" name="last_name">
<input type="submit" value="Submit">
</form>
</body>
</html>

创建4.js文件:

var express = require('express');

var app = express();

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

app.get('/4.html', function (req, res) {

res.sendFile( __dirname + "/" + "4.html" );

})

app.get('/process_get', function (req, res) {

// 输出 JSON 格式

var response = {

"first_name":req.query.first_name,

"last_name":req.query.last_name

};

console.log(response);

res.end(JSON.stringify(response));

})

var server = app.listen(8081, function () {

console.log("访问地址为 http://127.0.0.1:8081/4.html")

})

post方法详解:

创建5.html文件:

<html>
<body>
<form action="http://127.0.0.1:8081/process_post" method="POST">
First Name: <input type="text" name="first_name">  <br>
Last Name: <input type="text" name="last_name">
<input type="submit" value="Submit">
</form>
</body>
</html>

创建5.js文件:

var express = require('express');

var app = express();

//请求body-parser

var bodyParser = require('body-parser');

// 创建 application/x-www-form-urlencoded 编码解析

var urlencodedParser = bodyParser.urlencoded({ extended: false })

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

app.get('/5.html', function (req, res) {

res.sendFile( __dirname + "/" + "5.html" );

})

app.post('/process_post', urlencodedParser, function (req, res) {

// 输出 JSON 格式

var response = {

"first_name":req.body.first_name,

"last_name":req.body.last_name

};

console.log(response);

res.end(JSON.stringify(response));

})

var server = app.listen(8081, function () {

console.log("访问地址为 http://127.0.0.1:8081/5.html")

})

文件上传详解:

创建6.html文件:

<html>
<head>
<title>文件上传表单</title>
</head>
<body>
<h3>文件上传:</h3>
选择一个文件上传: <br />
<form action="/file_upload" method="post" enctype="multipart/form-data">
<input type="file" name="image" size="50" />
<br />
<input type="submit" value="上传文件" />
</form>
</body>
</html>

创建6.js文件:

var express = require('express');

var app = express();

//请求fs

var fs = require("fs");

var bodyParser = require('body-parser');

//请求multer

var multer = require('multer');

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

app.use(bodyParser.urlencoded({ extended: false }));

//设置保存图片的位置

app.use(multer({ dest: '/tmp/'}).array('image'));

app.get('/6.html', function (req, res) {

res.sendFile( __dirname + "/" + "6.html" );

})

app.post('/file_upload', function (req, res) {

// 上传的文件信息

console.log(req.files[0]);

var des_file = __dirname + "/" + req.files[0].originalname;

fs.readFile( req.files[0].path, function (err, data) {

fs.writeFile(des_file, data, function (err) {

if( err ){

console.log( err );

}else{

response = {

message:'File uploaded successfully',

filename:req.files[0].originalname

};

}

console.log( response );

res.end( JSON.stringify( response ) );

});

});

})

var server = app.listen(8081, function () {

console.log("访问地址为 http://127.0.0.1:8081/6.html")

})

cookie管理详解:

var express = require('express')

var cookieParser = require('cookie-parser')

var util = require('util');

var app = express()

app.use(cookieParser())

app.get('/', function(req, res) {

console.log("Cookies: " + util.inspect(req.cookies));

})

app.listen(8081)

以上为node.js express框架知识点。 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值