express使用、中间件、模板引擎、静态文件、错误处理

express是什么

基于nodejs的web开发框架。

引言

旧时代用http模块实现服务器,太麻烦。

express步骤

npm install express(npm 安装express)

下面实现代码

const express = require("express");

const hostname = "localhost";

const port = 3000;

const app = express();


app.get("/", (req, res) => {

  res.render("hello word");

});

app.listen(port, () => {

  console.log(`server running at http:\\${hostname}:${port}/`);

});

简单web服务器创建完成。 node 执行js文件可以访问

编写一个中间件

理解中间件概念:将具体业务逻辑和底层逻辑解耦的组件。

express中中间件是一个具有特殊功能的函数

举例:function someMiddleware(req,res,next){

    //自定义逻辑

    next()

}

参数中,req和res就是前面提到的request请求对象和response响应对象,next触发下一个中间件的执行。

express中间件有两种方式:全局中间件和路由中间件。

全局中间件:

通过app.use函数就可以注册中间件并且此中间件会在用户发起任何请求都可能执行,例如:

app.use(someMiddleware)

路由中间件:

通过路由定义时注册中间件,此中间件只会在用户访问该路由对应的url时执行,例如:

app.get('/middleware',someMiddleware,(req,res)=>{

    res.send('hello word')

})

那么用户只有在访问/middleware时,定义的someMiddleware中间件才会被触发。


编写中间件loggingMiddleware(终端打印访问时间和url)

const express = require("express");

const hostname = "localhost";

const port = 3000;

const app = express();

function loggingMiddleware(req,res,next){

    const time = new Date()

    console.log(`[${time.toLocaleString()}] ${req.url}`)

    next()

}

app.use(loggingMiddleware)

app.get('/',(req,res)=>{

    res.send("hello word")

})

app.listen(port, () => {

  console.log(`server running at http:\\${hostname}:${port}/`);

});

使用模板引擎渲染页面

npm install ejs

创建views文件夹,放置模板

在views文件夹创建index.ejs代码如下

这是index.ejs

链接到第二个模板

创建second.ejs

这是模板2页面

server.js代码

app.set('views','./views')

app.set('view engine','ejs')

app.get('/',(req,res)=>{

res.render('index')

})

app.get("/second",(req,res)=>{

    res.render('second')

})

再次运行服务器访问页面

添加静态文件服务

使用express.static

在根目录创建public/css/style.css

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

http:localhost:3000/css/style.css即可访问

在ejs模板使用可以链接css文件

处理错误

app.use('*',(req,res)=>{

    res.status(404).send("404,访问页面不存在")

})

你可能感兴趣的:(express使用、中间件、模板引擎、静态文件、错误处理)