express是目前最流行的node.js后端框架之一<=>相当于jQuery与js的关系。
功能类似的后端框架 koa.js egg.js hapi.js
最大优势->中间件
初始化:

let ewpress = require("express");
let app = express();
  1. router app.get||post(路径,回调函数)
    例如
app.get("/",(req,res)=>{
		res.send("Hello world");
});
app.get("/jiejie/:name",(req,res)=>{
		//res.send(req.params.name);
		res.send(req.params["age"])
});
  1. 静态资源库
    这个是真的有点强,一步搭建就出来了。
app.use(express.static(文件路径(如"./public")));
app.get("/,(req,res)=>{
			res.send("Hello world");
});

而且,它也解决了很多兼容性的问题,例如 从中读取js文件时,出现的中文可以正常显示。
不会影响其他页面配置。
如果你希望所访问的文件存放在一个虚拟的目录,可以为静态资源指定一个挂载路径的方式。
app.use('/static',express.static('public'))
然后就可以通过带有"/static"前缀地址来访问文件了。
例如
http://localhost:3000/static/js/app.js

  1. router使用细节

  2. app.get(path,callback,[, callback....])

  3. send
    可以返回字符串 res.write("jiejie")
    可以返回json res.send({name:"jiejie",age:19});
    可以返回html res.send("<input type = 'data'>");
    可以设置status res.status(404).send("Bad request");
    **注意:send方法只能响应一次,如果需要多次,请使用node原声方法write ,end **

  4. 模板引擎-ejs

    • 初始化
      
    				//指定视图所在的位置
    			 app.set('views','expressStudy\\views');
    			 //2.注册模板引擎
    			 app.set('view engine','ejs');
    
    • 了解app.engin(),set函数链接
    • node.js中也有自定义模板引擎的定义方法链接
    • render 函数
      res.render("list",dataJson);//传送数据到list.ejs
  5. 应用生成器
    初试化操作

1.express --view=ejs demo1
2.cd demo1
3.npm install
4. SET DEBUG=demo1:* & npm start
  •   	app.js  整个项目的入口文件,有初始化的配置代码
    
  •   	package.json  package-lock.json   第三方依赖
    
  •     bin/www  工程启动文件(右击,运行)
    
  •     public 存放静态资源文件
    
  •     routes 存放路由文件
    
  •     views  存放模板文件
    
  •     对app.js进行分析
    
//1.引入包文件
let path = require('path');
let createError = require('http-errors');
let express = require('express');
let cookieParser = require('cookie-parser');
let logger = require('morgan');

//2.引入路由文件
let indexRouter = require('./routes/index');
let usersRouter = require('./routes/users');

let app = express();

// 设置视图引擎
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

//使用包
app.use(logger('dev'));//使用开发者模式
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

//让用户访问路由
app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};

// render the error page
res.status(err.status || 500);
res.render('error');
});

//向外暴露app文件
module.exports = app;

生成server文件夹 express server