npm init -y(初始化项目)

npm install express(引入express)

npx express-generator -e(自动生成模板。添加对 ejs 模板引擎的支持)

app.js

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;

最新文章

  1. 《Benign and maligenant breast tumors classification based on region growing and CNN segmentation》翻译阅读与理解
  2. JS中同名函数有效执行顺序
  3. 浅谈html5网页内嵌视频
  4. java 中文转换成Unicode编码和Unicode编码转换成中文
  5. 解决php与IIs的冲突
  6. nodejs(一) 简单登录验证 使用mongoose 操作MongoDB
  7. mysqli 启动出错
  8. SQL SERVER 2000 遍历父子关系数据的表(二叉树)获得所有子节点 所有父节点及节点层数函数
  9. [STM32F103]PWM输入捕获配置
  10. UILabel设置富文本后不显示省略号
  11. python从零安装
  12. 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis
  13. 原生App切图的那些事儿
  14. ES6 变量的解构
  15. 替代crontab,任务计划统一集中管理系统cronsun简介
  16. 通过SourceTree连接SSL有问题的自建gitlab服务器
  17. shiro标签的使用
  18. AngularJs 第一个自定义指令编写
  19. Unity Optimization UNITY优化关注列表
  20. leetcode简单题目两道(2)

热门文章

  1. c:找到出现次数最多的递增数字串
  2. linux 安装redis及问题收集
  3. reduce累加实现
  4. linux 安装Apache php mysql注意事项
  5. RocketMQ的push消费方式实现的太聪明了
  6. Apache Pulsar Summit Asia 2020 正式启动,演讲议题征集中!
  7. 在django中前后端传输数据的编码格式(contentType)
  8. shiro登录过程
  9. Hadoop的由来、Block切分、进程详解
  10. JSP中的EL 表达式