传统开发模式做项目:手把手教你,直击实战项目。

本文详细介绍了使用传统开发模式构建项目的过程,包括项目初始化、服务器搭建、模板引擎配置、静态资源托管、处理路由和模块化开发等步骤。重点讲解了如何处理静态资源路径问题,确保css、js和图片的正确引用,并实现多路由的响应处理。同时,还涵盖了异常处理和ajax请求的分发与处理。
摘要由CSDN通过智能技术生成

传统开发模式做项目

使用模板引擎,在静态页面中书写js逻辑,所以项目中需要使用模板引擎

步骤:

  1. 将做的项目src放到project中

    在project中 进行项目初始化

    npm init -y
    
  2. 下载依赖的模块:需要用到的

    npm i express art-template express-art-template cookie-parser body-parser bcryptjs mysql svg-captcha
    
  3. 就在src所在文件夹中新建app.js用来创建服务器

    // 创建服务器
    const express = require('express')
    const app = express()
    app.get('/',(req,res)=>{
         
        res.send('服务器搭建成功')
    })
    app.listen(3000)
    
  4. 在package.json文件中配置启动项目的命令:

    "scripts": {
         
        "test": "echo \"Error: no test specified\" && exit 1",
        "start":"nodemon app.js"
    },
    

在这里插入图片描述

  1. 启动服务器

    npm start
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZUoe9cDJ-1625492540897)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625293155474.png)]

    再打开浏览器测试:http://localhost:3000

    服务器就搭建成功了…

  2. 静态资源托管:

    app.use('/src', express.static('src'))
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LNHBGHbS-1625492540899)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625293274207.png)]

    打开浏览器:就可以访问项目的index.html

    在这里插入图片描述

  3. 设置模板引擎,处理 / 路由请求的时候,将首页的html模板渲染到浏览器中

    配置模板引擎:

    因为需要用到path ,先导入

    const path = require('path')
    

    然后配置模板引擎

    // 配置模板引擎
    app.engine('html',require('express-art-template'))
    app.set('views',path.join(__dirname,"template"))
    app.set('view engine','html')
    

    处理 / 路由渲染index模板:

    需要将 res.end改为 res.render

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3u83UZOJ-1625492540904)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625293578965.png)]

    // 处理首页
    app.get('/',(req,res)=>{
         
        res.render("index")
    })
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ofmC9dRh-1625492540906)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625293597771.png)]

    但是,现在在template模板文件夹下没有index这个模板,所以,从src中将index.html剪切到了template文件夹下了

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VZL7r6Vs-1625492540907)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625293452229.png)]

    测试访问 :http://localhost:3000

    home.html中的标签能显示,但是js和css以及img都没有。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rDgU8wHn-1625492540908)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625293739042.png)]

    查看这些静态资源的路径:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W2jCfSEu-1625492540908)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625293843838.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KvqqGAuN-1625492540909)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625293800650.png)]

    • normalize.css的路径:/node_modules/normalize.css/normalize.css

    • bootstrap的路径:/node_modules/bootstrap/dist/css/bootstrap.min.css

    • jquery的路径:/node_modules/jquery/dist/jquery.min.js

    • layer的路径:/node_modules/layui-layer/dist/layer.js

      上面的路径都是由/node_modules开头的,一次性处理掉

      定义中间件:

      // 处理 /node_modules开头的路由
      app.use('/node_modules',nodeModuleRotuer)
      

      处理这个请求的路由模块nodeModuleRotuer不存在,导入他

      const nodeModuleRotuer = require('./router/nodeModule.js')
      

      对应的文件还不存在,在src所在文件夹中新建了router文件夹,在这个router文件夹下,新建了nodeModule.js文件:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fYfJya9S-1625492540911)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625294011033.png)]

      const express = require('express')
      const router = express.Router()
      // 只要是经过前面的中间件 /node_modules来到这里的,只要是使用 /node_modules开头的路径,我们在这里处理
      router.use('/',(req,res)=>{
             
      	// 具体处理应该是读取对应的文件并响应出去
          // 并没有这些文件 - jquery、normalize.css、layer这些文件,我们还没有下载
      })
      module.exports = router
      

      先下载项目中依赖的模块:

      npm i jquery bootstrap@3 layui-layer normalize.css
      

      下载好以后,就可以读取了

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FnuivPak-1625492540911)(D:\新建文件夹\HBuilderX\update\6.28-传统开发模式-mongodb\1-笔记\media\1625294461530.png)]

      然后再对这些路由进行响应处理 nodeModule.js

      const express = require('express')
      const router =
  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贪吃ღ大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值