+ 查看端口是否被占用,便于设置端口号 netstat -ano
+ 端口号设置位置: bin/www
+ 静态文件位置: public
+ 中间件, 实质上就是一个函数。公共的,处理一些问题的函数。
- 执行任何代码。
- 修改请求和响应对象。
- 终结请求-响应循环。
- 调用堆栈中的下一个中间件。
+ 中间价分类
- 应用级中间件
- 路由级中间件
- 错误处理中间件
- 内置中间件
- 第三方中间件
- next : 匹配路由后继续向下执行中间件
- res.render()
,将会根据views
中的模板文件进行渲染。如果不想使用views文件夹,想自己设置文件夹名字,那么app.set("views","aaaa")
;
+ 返回一个图片。
+ app.use(path,callback)中的callback既可以是router对象又可以是函数
+ app.get(path,callback)中的callback只能是函数
+ body-parser 处理application/x-www-form-urlencoded、application/json两种格式的请求体。经过这个中间件后,就可以在所有路由处理器的req.body中访问请求参数。
+ ajax 请求只能在后端跳转。??
app.get('/favico.ico', (req, res) => {
res.sendFile("favico.ico");
});
jade 语法 * 标签结构靠缩进控制,所以缩进一定准确 *
doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
block scripts //公共模板需要占位否则子模板无法添加
body
block content
简单登录效果: 利用 POST, 获取用户名密码,写死在页面里, 然后返回 html, 前端直接使用 document.write 实现页面刷新。