express是目前最流行的node.js后端框架之一<=>相当于jQuery与js的关系。
功能类似的后端框架 koa.js egg.js hapi.js
最大优势->中间件
初始化:
let ewpress = require("express");
let app = express();
- 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"])
});
- 静态资源库
这个是真的有点强,一步搭建就出来了。
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
-
router使用细节
-
app.get(path,callback,[, callback....])
-
send
可以返回字符串res.write("jiejie")
可以返回jsonres.send({name:"jiejie",age:19});
可以返回htmlres.send("<input type = 'data'>");
可以设置statusres.status(404).send("Bad request");
**注意:send方法只能响应一次,如果需要多次,请使用node原声方法write ,end ** -
模板引擎-ejs
-
初始化
//指定视图所在的位置 app.set('views','expressStudy\\views'); //2.注册模板引擎 app.set('view engine','ejs');
-
-
应用生成器
初试化操作
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