Node.js(二)express

const express=require("express");
const path=require("path");
const logger=require("morgan");

const app=express(); //创建Web应用

// app.get("/",(req,res,next)=>{
//     res.send("Hello Express!");
//     next();
// })

挂载静态资源
app.use("/",express.static(path.join(__dirname,"/public")));

//挂载日子组件
app.use(logger("dev"));

//设置视图文件的路径
app.set('views', path.join(__dirname, 'public'));
//设置视图引擎为ejs
app.set('view engine', 'ejs');

//挂载路由
const indexRouter=require("./router/index")
app.use("/",indexRouter);

const dogRouter=require("./router/dog")
app.use("/dog",dogRouter);

//获取query中的参数
app.get("/cart",(req,res,next)=>{
    let id=req.query.id;
    res.send("Get,id="+id);
})
//获取路径中的值
app.get("/cart/:id/:type",(req,res,next)=>{
    let id=req.params.id;
    res.send(req.url+",id="+id+"type="+req.params.type);
})

//挂载中间件函数
//如果不指明路径则匹配根路径
app.use("/",(req,res,next)=>{
    console.log("当前时间:"+Date.now());
    next();
})

module.exports=app;//导出对象

www.js

const app=require("../app.js");
app.listen(3000,"127.0.0.1",()=>{
    console.log("Web应用运行中...");
})

./router/dog.js(设置路由)

const express=require("express");
//创建路由对象
const router=express.Router();

const _=require("lodash");

let dogs=[
  {id:1,name:"金毛",price:1000},
  {id:2,name:"阿拉斯加",price:1000},
  {id:3,name:"比熊",price:1000},
  {id:4,name:"泰迪",price:1000},
  {id:5,name:"旺财",price:1000}
]
router.get('/', function(req, res, next) {
    res.render('dog', { title: 'dog',dogs,msg:""});
});

router.get('/delete/:id', function(req, res, next) {
  //拿到索引
  let index=_.findIndex(dogs,{id:parseInt(req.params.id)});
  //删除
  dogs.splice(index,1);
  //返回消息提示
  res.render("dog",{ title: 'dog',dogs,msg:"删除成功"})
});

module.exports=router;

Original: https://www.cnblogs.com/zsbb/p/16706541.html
Author: 最帅爸爸
Title: Node.js(二)express

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/616210/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Fizz网关入门教程-路由初体验

    概念 路由就是定义网关如何处理请求,分反向代理、服务发现、服务编排三种类型。 配置 路由的定义可通过网关管理后台完成: 下面分别介绍反向代理和服务发现路由的配置,设网关部署为 1….

    Java 2023年6月9日
    094
  • 带你深入理解3.4.2的版本更新,对用户带来了什么?

    JNPF快速开发平台迎来了3.4.2 JAVA版本的更新,还有很多朋友可能对我们平台更新的具体内容不甚理解,本文就带你从在线开发的控件组件的角度看看3.4.2版本为用户带来了那些改…

    Java 2023年6月5日
    0108
  • 【GIT-精讲】从零玩转Git-基础理论

    关于版本控制 一、什么是版本控制 版本控制(Version Control Systems)版本控制(Revision control)是一种软件工程技巧 在开发的过程中,确保由不…

    Java 2023年6月9日
    0100
  • linux部署jar包脚本和注册开机启动

    前言 之前开发了windows部署jar包为服务的工具在实际生产环境中使用非常简单方便,公司部分项目是部署在linux系统中的,所以决定整合一个通用的jar包部署脚本,并注册为开机…

    Java 2023年6月15日
    085
  • 平台接口建设规范

    建设目标 平台接口建设规范旨在为接口开发、测试、使用划定一个框架边界,明确技术目标与要求,并要求提供完备的接口文档说明,为自有平台与第三方平台提供数据及服务支持。 建设标准 接口规…

    Java 2023年6月9日
    082
  • 下单流程解耦新方案-你知道Spring事件监听机制吗

    一、Spring事件监听介绍 Spring对事件监听是通过事件类型、事件类型监听和事件发布器3个部分来完成的 // 1. 自定义订单事件 public class OrderEve…

    Java 2023年6月14日
    085
  • SpringBoot设置Undertow替换Tomcat

    依赖处理 先排除Tomcat依赖 ,然后引入undertow依赖 一些yml的配置项 undertow进行文件上传逻辑代码编写时,因底层实现不同,无需创建新文件,即不需要以下代码 …

    Java 2023年5月30日
    079
  • 最新必会的计算机网络大厂面试必问20个问题

    1、网络分层结构 2、三次握手 3、四次挥手 4、第四次挥手为什么要等待2MSL? 5、为什么是四次挥手? 6、TCP和UDP的区别 7、TCP有哪些特点? 8、HTTP协会的特点…

    Java 2023年6月5日
    099
  • java-单例详解

    一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。 二. 单例模式的特点 单例模式只能有一个实例。 单例类…

    Java 2023年6月8日
    090
  • springboot操作es

    转载:https://blog.csdn.net/qq_40018541/article/details/124839238?utm_medium=distribute.pc_re…

    Java 2023年5月30日
    087
  • Java-网络编程学习笔记

    前言 java网络编程这块一直是工作学习中涉及到的比较少的一块,这里记录一下学习笔记 网络编程 Original: https://www.cnblogs.com/houzheng…

    Java 2023年5月29日
    094
  • ApplicationContext refresh 过程及一些重要的 processor 解析

    注册 Bean 到容器,通过限定名获取 Bean 可以拦截 Bean 初始化前后的处理 可以在 Bean 属性注入后和即将销毁时做一些逻辑处理 解决了循环依赖 其实总结起来它实现的…

    Java 2023年6月5日
    087
  • 字节码&ASM-基础

    在接触ASM之前不得不去了解一些字节码相关的前置知识,掌握字节码的类型描述、JVM代码执行模型是开启ASM大门的钥匙,掌握这把钥匙开启大门才能走上一条康庄大道通往ASM,否则一路摸…

    Java 2023年6月7日
    076
  • 从壹开始 [ Ids4实战 ] 之七 ║ 客户端、服务端、授权中心全线打通

    1、经过元旦两天的全力整改,终于在这新的一年,完成了我的布道生涯的第一个大步走 —— 那就是客户端(VUE)、服务端(ASP.NET Core API)、授权中心(Identity…

    Java 2023年5月30日
    094
  • 【Java学习笔记】如何写一个简单的Web Service

    作者:gnuhpc出处:http://www.cnblogs.com/gnuhpc/ 本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web S…

    Java 2023年5月29日
    079
  • Vuex项目Example中的源码学习(2)

    counter-hot 项目描述 和第一个项目在功能上的区别,就是会记录最近五次的操作。根据项目的名称,我们知道是关于热重载的。 关于项目的改进 我们对比第一个项目,改进的地方是把…

    Java 2023年6月7日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球