专栏名称: mapengfei47
前端开发工程师
目录
相关文章推荐
每日人物  ·  范冰冰,靠一片面膜“杀”回来了 ·  4 小时前  
人物  ·  与谁同行,和去往哪里一样重要 ·  19 小时前  
南方人物周刊  ·  今晚截止 | ... ·  昨天  
南方人物周刊  ·  音乐人陈彼得去世:“除了战斗,你别无选择” ·  昨天  
51好读  ›  专栏  ›  mapengfei47

nodejs(八)express使用详解

mapengfei47  · 掘金  ·  · 2019-09-22 03:57

正文

请到「今天看啥」查看全文


app.use(bodyParse.urlencoded({ extended : false })) app.use(bodyParse.json()) //配置访问路由,返回post请求中的name参数 app.post( '/post' ,(req,res)=>{ const result = req.body console .log(result) res.end(result.name) }) app.listen( 3000 ,()=> console .log( 'Server is running on localhost:3000' )) 复制代码

3. 开启服务器,可通过postman访问URL,自行配置body里面的参数信息,以及指定Content-Type

4. 最后点击左下角的body,即可查看我们服务器中的返回信息

四. express中 art-template的使用

前面我们学习了如何在Nodejs中使用 art-template ,在express同样可以使用,接下来我们就来看看,如何在express中使用 art-template

1. 在express中使用art-template,首先要安装如下两个模块

npm install art-template express-art-template -S
复制代码

2. 添加模版界面

// index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{{ title }}</title>
</head>
<body>
    <h1>{{ title }}</h1>
    <p>My name is {{ name }}</p>
    <p>I come from {{ from }}</p>
    <p>I like {{each hobbies}} {{ $value }} {{ /each }}</p>
</body>
</html>
复制代码

3. 添加server.js文件

const express = require('express')
const app = express()


// 配置 express-art-template模版引擎,
//配置之后,服务器请求事件的回调函数的响应对象上会增加一个 render方法,用于渲染模版字符串返回渲染之后的结果
//  第一个参数 html 为模版文件拓展名,表示模版文件必须是HTML文件
app.engine('html',require('express-art-template'))

app.get('/',(req,res)=>{
    res.render('./index.html',{
        title: '个人介绍',
        name: 'Kobe',
        form: 'America',
        bobbies: ['basketball','swimming']
    })
})

app.listen(8000,()=>console.log('Server is running on localhost:3000'))
复制代码

4. 启动服务器,调用URL,我们发现,报如下错误

Error: Failed to lookup view "./index.html" in views directory "C:\Users\admin\Desktop\work\ForStudy\8.Node.js\DemoFolder\express-art-template-demo\views"
复制代码

错误分析

  • 调用res.render方法的时候,默认会去同级目录的 views文件夹下面去找对应的文件
  • 在这里由于我们的server.js和index.html在同级目录下,于是系统找不到views目录下的index.html文件,所以报错
  • **规范:**我们一般将模版文件放在与server.js同级的views文件夹下面,方便调用
  • **自定义:**我们还可以通过如下方法,自定义我们希望查找模版界面的目录
app.set('views', '替换的文件路径') // 第一个参数必须为:views
复制代码

五. express中路由模块的提取

路由分为前端路由和后端路由,这里我们主要谈论的事后端路由,即URL地址

5.1 路由的概念

后端路由

对于普通网站,所有的链接都是URL地址,URL地址即对应服务器上面的资源

前端路由

前端路由主要通过hash(#)来实现,通过hash值的改变来切换界面,同同时,hash值的改变并不会带来http请求的重新响应,使得加载页面的性能更好

5.2 路由的提取

通过前面的学习我们知道,可以通过express的get和post方法,对不同的URL地址做出响应,最终将结果返回給客户端

**问题描述:**一旦我们的项目界面多了起来,需要处理的请求路径就会比较多,如果全部写在一个文件,就会使得文件难以维护,于是我们可以提取路由文件,专门用来配置路由,最后把路由对象导出挂载到服务器上即可

实现:

  1. 使用 npm init -y 初始化,并且安装 express 模块

    npm init -y
    npm install express -S
    复制代码
  2. 创建server.js文件

    // server.js
    
    const express = require('express')
    const server = express()
    
    server.listen(3000,()=>{
        console.log('Server is running on localhost:3000')
    })
    复制代码
  3. 路由文件

    // router.js
    
    // 引入express并且获取路由对象
    const app = require('express')
    const router = app.Router()
    
    // 配置路由对象
    router.get('/',(req,res)=>{
        res.send('主页'






请到「今天看啥」查看全文