GVKun编程网logo

[Node.js]Express web框架(node.js的express框架)

9

在这篇文章中,我们将带领您了解[Node.js]Expressweb框架的全貌,包括node.js的express框架的相关情况。同时,我们还将为您介绍有关ExpressNodeJsWeb框架入门笔记

在这篇文章中,我们将带领您了解[Node.js]Express web框架的全貌,包括node.js的express框架的相关情况。同时,我们还将为您介绍有关Express NodeJs Web框架 入门笔记、express: node.js里面高效轻量级的web框架;、express创建node.js---web应用、node express web框架的的使用总结的知识,以帮助您更好地理解这个主题。

本文目录一览:

[Node.js]Express web框架(node.js的express框架)

[Node.js]Express web框架(node.js的express框架)

摘要

Express是一个简洁灵活的node.js web应用框架,提供了一系列强大特性帮助你创建各种web应用和丰富的http工具。使用express可以快速创建一个完整功能的网站。

Express

Express核心特性:

  • 可以设置中间件来响应http请求。
  • 定义了路由表用于执行不同的Http请求动作。
  • 可以通过向模版传递参数来动态渲染HTML页面。

安装Express

检查是否安装了cnpm,没有安装可以参考这里进行安装,

你可以使用我们定制的  (gzip 压缩支持) 命令行工具代替默认的 npm

npm install -g cnpm --registry=https:

安装cnpm成功

安装Express框架,并将其保存到依赖列表中(注意:需要使用管理员身份运行cmd),进入web应用项目目录,这里项目所在目录为D:\node,运行下面命令:

cnpm install express --save

以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安装的:

body-parser - node.js 中间件,用于处理 JSON,Raw,Text 和 URL 编码的数据。

cnpm install body-parser --save

cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。

cnpm install cookie-parser --save

multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。

cnpm install multer --save

安装成功后,查看express的版本号

cnpm list express

一个例子

接下来我们使用 Express 框架来输出 "Hello express World"。

以下实例中我们引入了 express 模块,并在客户端发起请求后,响应 "Hello express  World" 字符串。

创建 express_demo.js 文件,代码如下所示:

文件 express=require("express" app='/',"Hello express world." server=app.listen(8081, host= port="应用实例,访问地址为 http://%s:%s"

执行

浏览器响应内容

请求和响应

Express应用使用回调函数的参数request和response对象来处理请求和响应数据,如上面例子中:

app.get('/',response){ response.send("Hello express world."

Request

该对象表示http请求,包含了请求查询字符串,参数,内容,http请求头部等属性。

  1. req.app:当callback为外部文件时,用req.app访问express的实例。
  2. req.baseUrl:获取路由当前安装的URL路径。
  3. req.body / req.cookies:获得「请求主体」/ Cookies。
  4. req.fresh / req.stale:判断请求是否还「新鲜」.
  5. req.hostname / req.ip:获取主机名和IP地址。
  6. req.originalUrl:获取原始请求URL。
  7. req.params:获取路由的parameters。
  8. req.path:获取请求路径。
  9. req.protocol:获取协议类型。
  10. req.query:获取URL的查询参数串。
  11. req.route:获取当前匹配的路由。
  12. req.subdomains:获取子域名。
  13. req.accepts():检查可接受的请求的文档类型。
  14. req.acceptsCharsets / req.acceptsEncodings / req.acceptsLanguages:返回指定字符集的第一个可接受字符编码。
  15. req.get():获取指定的HTTP请求头。
  16. req.is():判断请求头Content-Type的MIME类型。

Response

该对象表示http响应,即在接收到请求时向客户端发送的http响应数据。

  1. res.app:同req.app一样。
  2. res.append():追加指定HTTP头。
  3. res.set()在res.append()后将重置之前设置的头。
  4. res.cookie(name,value [,option]):设置Cookie。
  5. opition: domain / expires / httpOnly / maxAge / path / secure / signed。
  6. res.clearCookie():清除Cookie。
  7. res.download():传送指定路径的文件。
  8. res.get():返回指定的HTTP头。
  9. res.json():传送JSON响应。
  10. res.jsonp():传送JSONP响应。
  11. res.location():只设置响应的Location HTTP头,不设置状态码或者close response。
  12. res.redirect():设置响应的Location HTTP头,并且设置状态码302。
  13. res.send():传送HTTP响应。
  14. res.sendFile(path [,options] [,fn]):传送指定路径的文件 -会自动根据文件extension设定Content-Type。
  15. res.set():设置HTTP头,传入object可以一次设置多个头。
  16. res.status():设置HTTP状态码。
  17. res.type():设置Content-Type的MIME类型。

路由

上面了解request已经response对象的一些属性,而路由将决定请求的去处,决定响应给客户端的是哪个页面。

在http请求中,我们可以通过路由提取出请求的url以及get、post参数。

一个例子

创建express_demo2.js,代码如下:

express=require("express" app=输出 express index app.get('/',"请求get""express index" app.post('/',res){ console.log("主页post请求""post request"页面响应 app.get('/del_user',res){ console.log("/del_user 响应delete请求""删除页面"页面响应 app.get('/list_user',res){ console.log("/list_user get""用户列表页面"页面 abcd,abxcd,ab123cd,等响应 GET 请求 app.get('/ab*cd',res){ console.log("/ab*cd get请求"'正则匹配' server=app.listen(8081, host= port="应用实例,访问地址为 http://%s:%s"

首页

用户列表

正则匹配

fdb8f04dfb078cb.png" alt="">

无法解析地址

静态文件

Express 提供了内置的中间件 express.static 来设置静态文件如:图片, CSS,JavaScript 等。

你可以使用 express.static 中间件来设置静态文件路径。例如,如果你将图片, CSS,JavaScript 文件放在 public 目录下,你可以这么写:

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

一个例子

访问目录为public/images中的图片girl.jpg,创建express_demo3.js

express=require("express" app="public"'/','Hello World' server = app.listen(8081,<span>var host =<span> server.address().address
<span>var port =<span> server.address().port

console.log("应用实例,访问地址为 http://%s:%s"<span>,port)

})

访问

get方法

通过get方法提交2个参数,用process_get来处理输入:

index.html

My first page. irst Name: irst_name"

server.js

express=require("express" app="public"'/index.html',res) { console.log(__dirname ); res.sendFile(__dirname +"/index.html"'/process_get',res) { response=irst_name,last_name:req.query.last_name }; console.log(response); res.json(response) }) server = app.listen(8081, host = port ="应用实例,访问地址为 http://%s:%s"

请求

POST方法

通过server.js中的process_post来处理post请求

修改index.html中的method及请求路由

irst Name: irst_name" bodyParser=require("body-parser" urlencodedParser=bodyParser.urlencoded({extended:'/process_post',urlencodedParser, (req,res) {
response={
first_name:req.body.first_name,
last_name:req.body.last_name};
console.log(response);
res.json(response)

文件上传

创建一个用于上传文件的表单,使用 POST 方法,表单 enctype 属性设置为 multipart/form-data。

My first page. 文件上传:文件上传: 文件"

server.js

express=require("express" app= fs = require("fs" bodyParser=require("body-parser" multer=require('multer'"public"'/tmp/'}).array('image''/index.html',res) { console.log(__dirname ); res.sendFile(__dirname +"/index.html"'/file_upload',res) { file=req.files[0文件信息

<span>var des_file=__dirname+"/"+<span>file.orginalname;
fs.readFile(file.path,<span>function<span>(err,data){
fs.writeFile(des_file,data,<span>function<span>(err){
<span>if<span>(err){
console.log(err);
}<span>else<span>{
response =<span> {
message:'File uploaded successfully'<span>,filename:file.originalname
};
};
console.log(response);
res.json(response);
})
});
}) ;

<span>var server = app.listen(8081,port);
})

cookie管理

文件 express = require('express' cookieParser = require('cookie-parser'<span>var app =<span> express()
app.use(cookieParser())

app.get('/',res) {
console.log("Cookies: "<span>,req.cookies)
})

app.listen(8081)

资料

Express NodeJs Web框架 入门笔记

Express NodeJs Web框架 入门笔记

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

  • 使用 Express 可以快速地搭建一个完整功能的网站。
  • Express 框架核心特性:
  • 可以设置中间件来响应 HTTP 请求。
  • 定义了路由表用于执行不同的 HTTP 请求动作。
  • 可以通过向模板传递参数来动态渲染 HTML 页面。

<!--more-->

前提知识

  • NodeJs

  • NPM

创建项目

  • 初始化

这里我们使用npm初始化一个项目,直接回车使用默认参数

$ mkdir ~/myExpress
$ cd ~/myExpress
$ npm init	
  • 安装Express
$ npm install express --save
  • 创建入口文件app.js
$ touch app.js

基础示例

使用IDE打开项目(推荐Vscode或者WebStorm) 编辑app.js文件

// 引入依赖
var express = require(''express'')
var app = express()

// 定义port常亮
const port = 3030;

// 创建一个简单GET路由
app.get("/",function(req,res){
    res.send("Hello,World");
});

// 启动服务,第二个参数为callback() 
app.listen(port,function(){
    console.log(`Express 应用启动在${port} 端口`);
});

命令行切换到app.js目录下

$ node app.js

打印出Express 应用启动在3030 端口,在浏览器或者CURL访问http://localhost:3030即可看到Hello,World

$ curl -XGET http://localhost:3030/

路由设置

在上面的代码示例中我们使用了一个简单HelloWorld代码,使用了GET的请求方式,同样的Express也支持其他的Method,如POST,PATCH,DELETE等等,下面我们简单的写一下

// 引入依赖
var express = require(''express'')
var app = express()

// 定义port常亮
const port = 3030;

// 创建一个简单GET路由
app.get("/",function(req,res){
    res.send("Hello,World");
});

app.post("/post",function(req,res){
    var method = req.method;
    res.send(`发现${method} 请求`)
});

app.patch("/patch",function(req,res){
    var method = req.method;
    res.send(`发现${method} 请求`)
});

app.delete("/delete",function(req,res){
    var method = req.method.name;
    res.send(`发现${method} 请求`)
});

// 启动服务,第二个参数为callback() 
app.listen(port,function(){
    console.log(`Express 应用启动在${port} 端口`);
});

如果你需要添加全部的请求方式,可以使用app.all(path,callback);

由于POST等请求不能再浏览器输入地址访问,这里我们继续使用CURL来测试,没有这个工具的可以使用PostMan测试.

$ curl -XGET http://localhost:3030        
Hello,World

$ curl -XPOST http://localhost:3030/post   
发现POST 请求

$ curl -XPATCH http://localhost:3030/patch  
发现PATCH 请求

$ curl -XDELETE http://localhost:3030/delete
发现DELETE 请求 

静态文件

Express可以设置某个目录为静态文件目录,里面的资源我们可以直接通过URL访问,在app.js同级目录下执行以下脚本

$ mkdir public && cd public
$ echo "<h1>这里是静态资源文件内容</h1?" >> ./static.html

修改app.js文件,添加以下代码

app.use(express.static(''public''))

访问http://localhost:3030/static.html

$ curl -XGET http://localhost:3030/static.html
<h1>这里是静态资源文件内容</h1>

同样的,你也可以放入其他类型的资源,如JSON文件,图像,纯文本,CSS等.

Route模块

在上面示例中,我们可以使用下面的代码创建路由

var express = require(''express'')
var app = express()

app.get("/",function(req,res,next){})

app.get("/book",function(req,res,next){})

app.post("/book",function(req,res,next){})

<!--more-->

显然这样并不利于我们的代码管理,因此这里引入express.Route模块来模块化处理路由,下面我们有如下需求:

  • 创建 GET /

  • 创建 GET /book/nodejs

  • 创建POST /book/

    其中 /book/**单独存放于路由模块中

app.js同级目录下创建book.js文件代码内容如下:

var express = require(''express'');
// 创建router
var router = express.Router();

// 在router中设置路由
router.get(''/:id'', function (req, res, next) {
    var book = {
        id: req.params.id,
        name: "深入浅出NodeJS"
    };
    res.send(JSON.stringify(book))
});

router.post("/", function (req, res, next) {
    res.send("POST /book")
});

// 对外暴露
module.exports = router;

同样的app.js则需要引入上面router文件

// 引入依赖
var express = require(''express'')
var app = express()

// 引入router
var book_router = require(''./book'')

// 定义port常亮
const port = 3030;


// app 使用该router
app.use(''/book'',book_router)

// 创建一个简单GET路由
app.get("/",function(req,res){
    res.send("Hello,World");
});


// 启动服务,第二个参数为callback() 
app.listen(port,function(){
    console.log(`Express 应用启动在${port} 端口`);
});

启动应用,在命令行中访问,即结果如下:

$ curl -XGET http://localhost:3030/             
Hello,World

$ curl -XGET http://localhost:3030/book/ISBN-123
{"id":"ISBN-123","name":"深入浅出NodeJS"}

$ curl -XPOST http://localhost:3030/book/       
POST /book

NodeJs中的中间件

中间件,英文middleWare ,假设我们需要在控制台打印所有请求的消耗的时间信息,以及URL,那么我们给每个路由都加上代码,显然是很愚蠢的,那么我们可以为这些路由请求设置中间件,利用中间件来而完成统计.

修改appjs代码为以下内容:

// 引入依赖
var express = require(''express'')
var app = express()

const port = 3030

/**
 *  定义中间件函数
 * @param req   ---> requesr
 * @param res   ---> response
 * @param next  ---> 将请求传递到下一个中间件函数
 */
function logMiddleWare(req, res, next) {
    var url = req.originalUrl;
    // 记录开始执行时间
    var start = Date.now();
    // 向request中写入数据,在后面的中间件函数中可以获取到该参数
    req.start_time = start
    // 执行下一个中间件函数(在这里也就是路由的callback)
    next();
    // 记录完成时间
    var end = Date.now();
    // 打印日志
    console.log(`${url} 请求完成时间:`, end - start, "ms");
}

// 使用该中间件
app.use(logMiddleWare)

app.get("/time", function (req, res, next) {
    console.log(`获取到的参数start_time = ${req.start_time}`);
    res.send(`<h1>/${req.start_time}</h1>`);
});

// 服务启动
app.listen(port, function () {
    console.log(`服务启动在${port} 端口`);
});

我们测试以下:

curl -XGET http://localhost:3030/time 返回<h1>1541220185998</h1>,这里主要看一下控制台打印的信息

服务启动在3030 端口
获取到的参数start_time = 1541220185998
/time 请求完成时间: 6 ms

可以看到,首先是服务启动在3030 端口信息,接着我们开始请求/time,记录下了start_time,并写入到request中,接着在/time的回调函数中打印了该参数,执行完成之后,继续返回到 logMiddleWare 中记录下end_time,打印出耗时 6 ms

集成持久层(redis)

NodeJS支持多种数据库持久操作,比如常用的Redis,Mysql,MongoDB等等,那么这里我们简单的使用redis作为测试以下.首先说一下需求:

  • 创建一个请求为 POST /redis/:content 将content写入到redis中

  • 创建一个请求为 GET /redis 用户获取之前的设置

Ps: 这里我是用了docker来部署了一个redis服务器,如下

$ docker pull redis
$ docker run -d -p 6379:6379 --name redis_6379 redis
$ docker ps # 观察Redis运行情况
# 重启redis  `docker restart redis_6379`

首先你需要安装redis依赖,项目目录下执行npm install redis --save安装即可,修改app.js内容如下

// 引入依赖
var express = require(''express'');
var redis = require(''redis'')
var app = express()

const port = 3030
const redis_port = 6379

// 创建Redis client 端口为6379
var client = redis.createClient(redis_port,''localhost'');

/**
 * 设置Redis的回调事件,当redis出现连接失败的时候,执行之
 */
client.on(''error'',function (error) {
    console.log("Redis 连接出现异常")
});


app.post("/redis/:content",function (req, res, next) {
    var content = req.params.content;
    // 设置字符串到redis中 KV结构
    client.set(''KEY'',content)
    res.send("Redis设置完成")
})

app.get("/redis",function (req, res, next) {
    client.get(''KEY'',function (err, value) {
        res.send(value)
    })
})

// 服务启动
app.listen(port, function () {
    console.log(`服务启动在${port} 端口`);
});

测试内容如下

$ curl -XPOST http://localhost:3030/redis/Keep_it_simple_and_stupid
Redis设置完成

$curl -XGET http://localhost:3030/redis 
Keep_it_simple_and_stupid 

当然也可以在Redis客户端中查询数据

express: node.js里面高效轻量级的web框架;

express: node.js里面高效轻量级的web框架;

express使用

1: 安装express模块;

npm install express

基于express创建一个实例;


var express = require("express");
var app = express();
 
app.listen(8090);
 
//http协议的一种操作模式,可以使用它来发送数据
app.get("/login", function(req, res){
	res.send("----ok----");
	
});


 

//启动node服务器express框架
node webserver.js

 

//访问测试,在浏览器中输入
http://127.0.0.1:8090/login
输出----ok----

 

总结

以上是小编为你收集整理的express: node.js里面高效轻量级的web框架;全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

原文地址:https://blog.csdn.net/aa804738534/article/details/112428137

express创建node.js---web应用

express创建node.js---web应用

1.安装express模块

在命令行输入

npm install body-parser --save
npm install express --save

2.创建app.js文件

/*应用程序入口文件*/

/*加载express模块*/
var express = require(''express'');
/*创建app应用*/
var app = express();

/*首页*/
app.get(''/'',function (req,res,next) {
    res.send("<h1>您好,欢迎光临我的博客!!!</h1>");
})

/*监听http请求*/
app.listen(8099);

3.在浏览器输入localhost:8099

 

总结

以上是小编为你收集整理的express创建node.js---web应用全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

原文地址:https://www.cnblogs.com/kinblog/p/11037816.html

node express web框架的的使用总结

node express web框架的的使用总结

express是node的一个http的框架,包含路由分发,模板渲染,服务器的运行的。

node install express  -g   进行全局安装的  (--save 只安装在本项目)

安装的express的脚手架,才能快速开发express的项目的呢 (npm install express-generator)

expess  -e  myapp 使用ejs作为模板来开发express的项目的的

 

 

S, --save 安装包信息将加入到dependencies(生产阶段的依赖)

npm install gulp --save 或 npm install gulp -S

package.json 文件的 dependencies 字段:

"dependencies": {
    "gulp": "^3.9.1"
}

-D, --save-dev 安装包信息将加入到devDependencies(开发阶段的依赖),所以开发阶段一般使用它

-O, --save-optional 安装包信息将加入到optionalDependencies(可选阶段的依赖)

npm install gulp --save-optional 或 npm install gulp -O

package.json 文件的optionalDependencies字段:

"optionalDependencies": {
    "gulp": "^3.9.1"
}

-E, --save-exact 精确安装指定模块版本

npm install gulp --save-exact 或 npm install gulp -E

npm start 启动模块

基础语法

npm start [-- <args>]

该命令写在package.json文件scripts的start字段中,可以自定义命令来配置一个服务器环境和安装一系列的必要程序,如

"scripts": {
    "start": "gulp -ws"
}

此时在cmd中输入npm start命令相当于执行gulpfile.js文件自定义的watch和server命令。

如果package.json文件没有设置start,则将直接启动node server.js

npm stop 停止模块

基础语法

npm stop [-- <args>]

npm restart 重新启动模块

基础语法

npm restart [-- <args>]

npm test 测试模块

基础语法

npm test [-- <args>]
npm tst [-- <args>]

该命令写在package.json文件scripts的test字段中,可以自定义该命令来执行一些操作,如

"scripts": {
    "test": "gulp release"
},

此时在cmd中输入npm test命令相当于执行gulpfile.js文件自定义的release命令。

npm version 查看模块版本

今天关于[Node.js]Express web框架node.js的express框架的介绍到此结束,谢谢您的阅读,有关Express NodeJs Web框架 入门笔记、express: node.js里面高效轻量级的web框架;、express创建node.js---web应用、node express web框架的的使用总结等更多相关知识的信息可以在本站进行查询。

本文标签: