We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
首先要知道express是干什么的。他是我们nodejs使用的框架,就跟我们前端js要用angular一样,这是后端的框架,可以简化我们的代码,实现快速,简单的开发。另外,express 跟其他的工具搭配,会更强。比如第三方中间件,因为express只有一个内置的static 来处理静态文件的中间件。比如学过的bodyParser (处理json和查询字符串)
var express = require('express'); var app = express(); app.get('/', function(req, res){ res.send('im SYJ'); }); app.listen(8080);
app.locals 一个用来存储属性的空对象 当模板渲染对象时,会将locals和 我们传在render里的对象 合并为一个。 当我们在locals 中设置属性,所有的模板就都有这个属性了。 感觉后续用法有待开发
app.use 使用中间件 第一个参数可以是具体的设置路径,第二是callback
app.get 可以获取app.set()设置的值、设置路由
app.post 设置post请求路由
app.all('*') all + '*' 表示所有请求
app.route 设置路由
var app = express(); app.route('/events') .all(function(req, res, next) { 在 path 为'/events' 的路由前执行,可以设定中间件 }) .get(function(req, res, next) { res.send(...); }) .post(function(req, res, next) { })
拓展 multipart/form-data 常用的表单上传文件的方式,比如写邮件添加附件。发送的也是字符串,只不过不是常见的key=value那种,而是加了分隔符等内容的构造体 --开始-- --分割-- -- 结尾--
{name:'',name1:''}
JSON.stringify
res.json({name:22})
res.status(403).end();
res.set('Content-Type', 'text/plain'); res.set({ 'Content-Type': 'text/plain', 'Content-Length': '123', 'ETag': '12345' }) //对象里面重复的后面会把前面的覆盖 res.set('Set-Cookie','name=syj')
res.get('Content-Type'); //text/plain
{username:'SYJ'}
app.get('/contact',function(req,res){ res.render('contact',{msg:'contact'}); });
Sets cookie name to value
header 1 | header 2
new Date(Date.now()+20*1000)})
1.app.use(cookieParser('syj'));2.res.send(req.signedCookies);此时cookie在req.signedCookies上
var bodyParser=require('body-parser'); app.use(express.bodyParser())
var multer = require ( 'multer' ) app.use(multer({ dest: './uploads/' }))
response.cookie(name,value,{options})..
res.setHeader('Set-Cookie',"age=6; Domain=localhost");
var cookieParser = require('cookie-parser'); app.use(cookieParser()) //支持传秘钥参数
var session = require('express-session'); app.use(session({options})) //options参数的具体取值: key:字符串,用于指定用来保存session的cookie名称,默认为coomect.sid. store:属性值为一个用来保存session数据的第三方存储对象. fingerprint:属性值为一个自定义指纹生成函数. cookie:属性值为一个用来指定保存session数据的cookie设置的对象,默认值为{path:”/”,httpOnly:true,maxAge:14400000}. path是cookie保存路径.httpOnly是否只针对http保存cookie, maxAge用于指定cookie的过期时间,单位为毫秒. secret:字符串.用来对session数据进行加密的字符串.这个属性值为必须指定的属性.
The text was updated successfully, but these errors were encountered:
No branches or pull requests
express
首先要知道express是干什么的。他是我们nodejs使用的框架,就跟我们前端js要用angular一样,这是后端的框架,可以简化我们的代码,实现快速,简单的开发。另外,express 跟其他的工具搭配,会更强。比如第三方中间件,因为express只有一个内置的static 来处理静态文件的中间件。比如学过的bodyParser (处理json和查询字符串)
app
app.locals 一个用来存储属性的空对象
当模板渲染对象时,会将locals和 我们传在render里的对象 合并为一个。
当我们在locals 中设置属性,所有的模板就都有这个属性了。
感觉后续用法有待开发
app.use 使用中间件 第一个参数可以是具体的设置路径,第二是callback
app.get 可以获取app.set()设置的值、设置路由
app.post 设置post请求路由
app.all('*') all + '*' 表示所有请求
app.route 设置路由
Request
通常请求体 中的数据需要用事件监听来获取。第三方中间件可以自带监听并处理。比如body-parser中的json()来处理json格式的,urlencoded({ extended: true }) 来处理查询字符串 Multer处理http提交multipart/form-data,也就是文件上传
如果我们写了一个route (路由) 是user/:name/:name2
第二个路径名就可以req.params.name这样取到。带: 的都会以 key value 的方式
{name:'',name1:''}
放到req.params中。Response
JSON.stringify
你的参数,比如res.json({name:22})
res.status(403).end();
支持三个参数,(view [, locals] [, callback])
第一个参数是读取的模板文件名,第二个是需要替换的属性值,
{username:'SYJ'}
第三个是callback 后面两个参数可以不传。Sets cookie name to value
header 1 | header 2
new Date(Date.now()+20*1000)})
不写或者设0默认为会话cookie,存在客户端内存中1.app.use(cookieParser('syj'));2.res.send(req.signedCookies);此时cookie在req.signedCookies上
中间件
原生使用request.headers['cookie'] 取到一个字符串'; '分割的
另外 response.cookie可以设置cookie,注意区分。
response.cookie(name,value,{options})..
原生只能使用
虽然session与cookie是分开保存的.但是session中的数据经过加密处理后默认保存在一个cookie中.因此在使用session中间件之前必须使用cookieParser中间件.
使用了 session-parser中间件以后,requset.session上就有了session的所有属性.........
原生的话是先从cookie上 取出sessionid对应的值,这个值保存在我们后台对象中,作为 key。所有通过对象 obj.key 可以取出它对应的信息。
The text was updated successfully, but these errors were encountered: