Node框架——express

在此向使用 node 的 express 框架 来启动ndoe服务,然后能够连接mongoDB。

Express是一个基于Node.js平台的web应用开发框架,在Node.js基础之上扩展了web应用开发所需要的基础功能,从而使得我们开发Web应用更加方便、更加快捷。

“Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。”

由此可见,中间件在Express开发中的重要性

Express 框架核心特性:

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

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

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

首先使用 cnpm install express -S 将express安装到当前项目

基本结构

const Express = require('express')
const app = new Express()
const apiRoutes = Express.Router() //注意,不能使用 router 这个变量名
const axios = require('axios')

//CORS 解决跨域
app.all('*', function (req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With');
  res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
  if (req.method == 'OPTIONS') {
    res.send(200);
  } else {
    next();
  }
});

//请求B站轮播图
apiRoutes.get('/BSlider', function (req, res) {
  var url = 'https://api.bilibili.com/x/web-show/res/loc?pf=7&id=1695'
  axios.get(url, {
    params: req.query //req.query为get请求带的参数
  }).then((respond) => {
    res.json(respond.data)     // 将数据通过res.json进行json数据格式处理后返回给前端
  }).catch((err) => {
    console.log(err)           // 异常处理 
  })
})

app.use('/', apiRoutes)        // app.use 自定义中间件 , express 注册路由

app.listen('8081', function () {   //启动 node服务 ,监听8081 端口
  console.log('open in 8081')
})

Node框架——express_第1张图片

 express响应中用到常用三种API:

  • res.end()

用于快速结束没有任何数据的响应,使用res.end() (注意,如果有响应的返回数据,此方法会报错)。如果使用res.end()返回数据非常影响性能。

  • res.send()

响应中要发送数据,使用res.send() ,但要注意header ‘content-type’参数。 

  • res.json()

      发送一个json的响应。当传递对象或数组时,这个方法和res.send()方法的效果相同。不过,你可以使用这个方法来转换其他的值到json,例如null,undefined。(虽然这些都是技术上无效的JSON)。

 

 


 

 

express 菜鸟教程

API函数参考

 

 

 

 

 

你可能感兴趣的:(node.js)