GVKun编程网logo

Node后端Express框架安装及应用(node 后端框架)

15

在本文中,您将会了解到关于Node后端Express框架安装及应用的新资讯,同时我们还将为您解释node后端框架的相关在本文中,我们将带你探索Node后端Express框架安装及应用的奥秘,分析nod

在本文中,您将会了解到关于Node后端Express框架安装及应用的新资讯,同时我们还将为您解释node 后端框架的相关在本文中,我们将带你探索Node后端Express框架安装及应用的奥秘,分析node 后端框架的特点,并给出一些关于Centos 编译安装nodejs&express框架教程、Centos 编译安装nodejs&express框架的方法、CentOS安装运行NodeJS框架Express、express 脚手架安装及使用的实用技巧。

本文目录一览:

Node后端Express框架安装及应用(node 后端框架)

Node后端Express框架安装及应用(node 后端框架)

Express 框架核心特性:

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

Express安装

express的使用过程有两种方式:

  •  方式一:通过express提供的脚手架,直接创建一个应用的骨架;
  • 方式二:从零搭建自己的express应用结构;

方式一:安装express-generator

npm install -g express-generator

创建项目

express express-app

项目目录如下

├── app.js
├── bin
│   └── www
├── package-lock.json
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── users.js
└── views
    ├── error.jade
    ├── index.jade
    └── layout.jade

之后 cd 进入到对应的目录下,然后将项目跑起来:

npm install 
node bin/www
node app.js   

方式二: 自己搭建环境

上面通过express提供的脚手架,直接创建一个应用的骨架;现在我们自己从零搭建项目:

初始化一个新的项目:

npm init -y

安装express:

npm install express

新建app.js

在这里插入图片描述

express 初体验

现在搭建自己的第一个express程序:在app.js中加入如下代码

const express = require(''express'');
// 创建服务器
const app = express();
app.get(''/'',(req,res) => {
  res.end("Hello World");
});
app.listen(8000,() => {
  console.log("服务器启动成功~");
})

进入项目根目录下,在终端中将服务器跑起来:

node app.js

到浏览器:访问localhost:8000即可

请添加图片描述

请求和响应

请求的路径中如果有一些参数,可以这样表达:

/users/:userId

request对象中要获取可以通过req.params.userId;

返回数据

返回数据,我们可以方便的使用json

res.json(数据)方式;

const express = require(''express'');
const app = express();
app.get(''/users/:userId'', (req, res, next) => {
  console.log(req.params.userId);
  res.json({username: "liyingxia", password: "8i8i8i8i" });
});
app.listen(8000, () => {
  console.log("静态服务器启动成功~");
})

Express 中间件

认识中间件

Express是一个路由和中间件的Web框架,它本身的功能非常少:

Express应用程序本质上是一系列中间件函数的调用;

中间是什么?

中间件的本质就是一个回调函数;

这个回调函数接受三个参数:

请求对象(request对象);

响应对象(response对象);

next函数(在express中定义的用于执行下一个中间件的函数);

中间件中可以执行哪些任务?

执行任何代码;

更改请求(request)和响应(response)对象;

结束请求-响应周期(返回数据);

调用栈中的下一个中间件;

如果当前中间件功能没有结束请求-响应周期,则必须调用 next()将控制权传递给下一个中间件功能,否则,请求将被挂起。

使用中间件

express主要提供了两种方式:app/router.useapp/router.methods这两种方式把中间件应用到我们的应用程序中;

methods指的是常用的请求方式,比如:app.getapp.post

// express 中间件的使用
const express = require(''express'');
const res = require(''express/lib/response'');
const app = express();
app.use((req,res,next) => {
  console.log("middleware");
  next();
});
app.use((req,res,next) => {
  console.log("middleware");
  res.end("Hello Common Middleware");
})
app.listen(9000,()=>{
  console.log("中间件服务器启动成功~")
})

path匹配中间件:

//path 路径匹配中间件
app.use(''/home'',(req,res,next) => {
  console.log("home middleware 中间件");
  next();
});
app.use(''/home'',(req,res,next) => {
  console.log("home middleware02");
  next();
  res.end("middleware");
});
app.use((req,res,next) =>{
   console.log("middleware");
})

path 和 method 匹配中间件

// path 和 method 匹配中间件
app.get(''/home'',(req,res,next) => {
  console.log("home get middleware");
  next();
})
app.post(''/login'',(req,res,next) => {
  console.log("login post middleware");
  next();
});
app.use((req,res,next) => {
  console.log("common middleware");
})
app.use(express.json());
app.use(express.urlencoded({extended:true}));
app.post(''/login'',(req,res,next) => {
  console.log(req.body);
  res.end("登陆成功~");
});

日志记录中间件

如果我们希望将请求日志记录下来,那么可以使用express官网开发的第三方库:morgan
morgan安装:

npm install morgan

如何用?直接作为中间件使用即可:

const loggerWriter = fs.createWriteStream(''./log/access.log'', {
  flags: ''a+''
})
app.use(morgan(''combined'', {stream: loggerWriter}));

上传文件中间件

图片上传我们可以使用express官方开发的第三方库:multer

multer安装:

npm install multer

上传文件:

const upload = multer({
  dest: "uploads/"
})

app.post(''/upload'', upload.single(''file''), (req, res, next) => {
  console.log(req.file.buffer);
  res.end("文件上传成功~");
})

添加上传文件后缀名:

const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, "uploads/")
  },
  filename: (req, file, cb) => {
    cb(null, Date.now() + path.extname(file.originalname));
  }
})
const upload = multer({
  storage
})
app.post(''/upload'', upload.single(''file''), (req, res, next) => {
  console.log(req.file.buffer);
  res.end("文件上传成功~");
})

上传多张图片:

app.use(''/upload'', upload.array(''files''), (req, res, next) => {
  console.log(req.files);
});

请求和响应

客户端传递到服务器参数的方法常见的是5种:

方式一:通过get请求中的URL的params;

方式二:通过get请求中的URL的query;

方式三:通过post请求中的body的json格式;

方式四:通过post请求中的body的x-www-form-urlencoded格式;

方式五:通过post请求中的form-data格式;

请求解析

方式一:params

请求地址: http://locahost:8000/login/asd/ass

获取参数:

app.use(''/login/:id/:name'', (req, res, next) => {
  console.log(req.params);
  res.json("请求成功~");
})

方式二:query

请求地址:http://localhost:8000/login?username=liyingxia&password=123456
获取参数:

app.use(''/login'', (req, res, next) => {
  console.log(req.query);
  res.json("请求成功~");
})

方式三:通过post请求中的body的json格式;

在客户端发送post请求时,会将数据放到body中:客户端可以通过json的方式传递,也可以通过form表单的方式传递;

自己编写中间件来解析JSON:

app.use((req, res, next) => {
  if (req.headers[''content-type''] === ''application/json'') {
    req.on(''data'', (data) => {
      const userInfo = JSON.parse(data.toString());
      req.body = userInfo;
    })
    req.on(''end'', () => {
      next();
    })
  } else {
    next();
  }
})
app.post(''/login'', (req, res, next) => {
  console.log(req.body);
  res.end("登录成功~");
});

适用express内置的中间件或者使用body-parser来完成:

app.use(express.json());
app.post(''/login'', (req, res, next) => {
  console.log(req.body);
  res.end("登录成功~");
});

方式四:通过post请求中

body的x-www-form-urlencoded格式;

在这里插入图片描述

解析application/x-www-form-urlencoded:

可以使用express自带的 urlencoded函数来作为中间件:

传入的extended用于表示使用哪一种解析方式:

  • true:使用qs第三方模块;
  • false:使用querystring内置模块;
app.use(express.json());
app.use(express.urlencoded({extended: true}));

app.post(''/login'', (req, res, next) => {
  console.log(req.body);
  res.end("登录成功~");
});

方式五:通过post请求中的form-data格式;

通过any借助multer去解析一些form-data中的普通数据:

在这里插入图片描述

app.use(upload.any());
app.use(''/login'', (req, res, next) => {
  console.log(req.body);
});

响应方式

end()类似于http中的response.end方法;

res.end("获取成功~")

json()json方法中可以传入很多的类型:

object、array、string、boolean、number、null等,都会被转换成json格式返回

res.json({name:"liyignxia",password:"123456"});

status()设置状态码

res.status(200);

路由的使用

使用express.Router来创建一个路由处理程序:一个Router实例拥有完整的中间件和路由系统;

// 用户相关的处理
const userRouter = express.Router();

userRouter.get(''/'', (req, res, next) => {
  res.end("用户列表");
});

userRouter.post(''/'', (req, res, next) => {
  res.end("创建用户");
});

userRouter.delete(''/'', (req, res, next) => {
  res.end("删除用户");
});

app.use(''/users'', userRouter);

静态资源服务器

Node也可以作为静态资源服务器,并且express给我们提供了方便部署静态资源的方法;

const express = require(''express'');
const app = express();
app.use(express.static(''./build''));
app.listen(8000, () => {
  console.log("静态服务器启动成功~");
})

错误处理方式

app.use((req, res, next) => {
  next(new Error("USER DOES NOT EXISTS"));
});
app.use((err, req, res, next) => {
  const message = err.message;
  switch (message) {
    case "USER DOES NOT EXISTS":
      res.status(400).json({message})
  }
  res.status(500)
})
您可能感兴趣的文章:
  • node+express框架中连接使用mysql(经验总结)
  • NodeJs中express框架的send()方法简介
  • Node.js的Express框架使用上手指南
  • Nodejs express框架一个工程中同时使用ejs模版和jade模版
  • NodeJS Express框架中处理404页面一个方式

Centos 编译安装nodejs&express框架教程

Centos 编译安装nodejs&express框架教程

  一. 下载nodejs 版本


1

wget http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz

  二. 编译安装


1

2

3

4

5

6

cp node-v0.10.28.tar.gz /usr/src/

cd /usr/src

tar zxvf node-v0.10.28.tar.gz

cd node-v0.10.28/

./configuration --prefix=/usr/local/node

make&make install

  设置环境变量


1

2

3

4

vi /etc/profile

###############

最后一行添加

export PATH=$PATH:/usr/local/node/bin

  三. 安装express


1

2

npm install express -gd

npm install express-generator

Centos 编译安装nodejs&express框架的方法

Centos 编译安装nodejs&express框架的方法

一. 下载nodejs 版本

wget http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz

二. 编译安装

cp node-v0.10.28.tar.gz /usr/src/

cd /usr/src

tar zxvf node-v0.10.28.tar.gz

cd node-v0.10.28/

./configuration --prefix=/usr/local/node

make&make install

设置环境变量

vi /etc/profile

###############

最后一行添加

export PATH=$PATH:/usr/local/node/bin

三. 安装express

npm install express -gd

npm install express-generator

CentOS安装运行NodeJS框架Express

CentOS安装运行NodeJS框架Express

 安装依赖包

yum -y install gcc make gcc-c++ openssl-devel wget

下载/解压NodeJs

wget http://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz
tar -zvxf node-v0.12.7.tar.gz

编译及安装,逐行执行

cd node-v0.
./configure
make install

验证是否安装配置成功:

node -v

显示版本号,说明NodeJS安装成功,如图:

 

安装Express开发框架

npm install express -g

创建Express项目命名为demo1

express demo1

进入项目目录并安装项目依赖组件

cd demo1
npm install

在demo1的目录里启动项目

node start

最后通过浏览器访问服务器3000端口,页面显示,

到此全部安装成功!

express 脚手架安装及使用

express 脚手架安装及使用

入门简介

Express是基于nodejs的web开发框架。优点是易上手、高性能、扩展性强。

  • 易上手:nodejs最初就是为了开发高性能web服务器而被设计出来的,然而相对底层的API会让不少新手望而却步。express对web开发相关的模块进行了适度的封装,屏蔽了大量复杂繁琐的技术细节,让开发者只需要专注于业务逻辑的开发,极大的降低了入门和学习的成本。
  • 高性能:express仅在web应用相关的nodejs模块上进行了适度的封装和扩展,较大程度避免了过度封装导致的性能损耗。
  • 扩展性强:基于中间件的开发模式,使得express应用的扩展、模块拆分非常简单,既灵活,扩展性又强。

环境准备

首先,需要安装nodejs,这一步请自行解决。接着,安装express的脚手架工具express-generator,这对于我们学习express很有帮助。

npm install -g express-generator

 

第一个demo

利用之前安装的脚手架工具,初始化我们的demo项目。

/tmp mkdir express-demo
  /tmp cd express-demo 
  express-demo express

   create : .
   create : ./package.json
   create : ./app.js
   create : ./public
   create : ./public/javascripts
   create : ./public/images
   create : ./public/stylesheets
   create : ./public/stylesheets/style.css
   create : ./routes
   create : ./routes/index.js
   create : ./routes/users.js
   create : ./views
   create : ./views/index.jade
   create : ./views/layout.jade
   create : ./views/error.jade
   create : ./bin
   create : ./bin/www

   install dependencies:
     $ cd . && npm install

   run the app:
     $ DEBUG=express-demo:* npm start

 

按照指引,安装依赖。并启动服务

npm install

 

然后,启动服务器。

express-demo  npm start

> ex1@0.0.0 start /private/tmp/ex1
> node ./bin/www

 

访问浏览器,迈出成功的第一步。

express启动后的界面

今天关于Node后端Express框架安装及应用node 后端框架的分享就到这里,希望大家有所收获,若想了解更多关于Centos 编译安装nodejs&express框架教程、Centos 编译安装nodejs&express框架的方法、CentOS安装运行NodeJS框架Express、express 脚手架安装及使用等相关知识,可以在本站进行查询。

本文标签: