Nodejs Express 框架菜鸟教程Word文档格式.docx
《Nodejs Express 框架菜鸟教程Word文档格式.docx》由会员分享,可在线阅读,更多相关《Nodejs Express 框架菜鸟教程Word文档格式.docx(4页珍藏版)》请在冰豆网上搜索。
通过req.cookies可以取到传过来的cookie,并把它们转成对象。
multer-node.js中间件,用于处理enctype='
multipart/form-data'
(设置表单的MIME编码)的表单数据。
$cnpminstallbody-parser--save$cnpminstallcookie-parser--save$cnpminstallmulter--save安装完后,我们可以查看下express使用的版本号:
$cnpmlistexpress/data/www/node└──express@4.15.2->
/Users/tianqixin/www/node/node_modules/.4.15.2@express第一个Express框架实例接下来我们使用Express框架来输出'
HelloWorld'
。
以下实例中我们引入了express模块,并在客户端发起请求后,响应'
字符串。
创建express_demo.js文件,代码如下所示:
express_demo.js文件代码:
//express_demo.js文件varexpress=require('
express'
);
varapp=express();
app.get('
/'
function(req,res){res.send('
})varserver=app.listen(8081,function(){varhost=server.address().addressvarport=server.address().portconsole.log('
应用实例,访问地址为http:
//%s:
%s'
host,port)})执行以上代码:
$nodeexpress_demo.js应用实例,访问地址为http:
//0.0.0.0:
8081在浏览器中访问http:
//127.0.0.1:
8081,结果如下图所示:
请求和响应Express应用使用回调函数的参数:
request和response对象来处理请求和响应的数据。
app.get('
function(req,res){//--})request和response对象的具体介绍:
Request对象-request对象表示HTTP请求,包含了请求查询字符串,参数,内容,HTTP头部等属性。
常见属性有:
req.app:
当callback为外部文件时,用req.app访问express的实例req.baseUrl:
获取路由当前安装的URL路径req.body/req.cookies:
获得「请求主体」/Cookiesreq.fresh/req.stale:
判断请求是否还「新鲜」req.hostname/req.ip:
获取主机名和IP地址req.originalUrl:
获取原始请求URLreq.params:
获取路由的parametersreq.path:
获取请求路径req.protocol:
获取协议类型req.query:
获取URL的查询参数串req.route:
获取当前匹配的路由req.subdomains:
获取子域名req.accepts():
检查可接受的请求的文档类型req.acceptsCharsets/req.acceptsEncodings/req.acceptsLanguages:
返回指定字符集的第一个可接受字符编码req.get():
获取指定的HTTP请求头req.is():
判断请求头Content-Type的MIME类型Response对象-response对象表示HTTP响应,即在接收到请求时向客户端发送的HTTP响应数据。
res.app:
同req.app一样res.append():
追加指定HTTP头res.set()在res.append()后将重置之前设置的头res.cookie(name,value[,option]):
设置Cookieopition:
domain/expires/httpOnly/maxAge/path/secure/signedres.clearCookie():
清除Cookieres.download():
传送指定路径的文件res.get():
返回指定的HTTP头res.json():
传送JSON响应res.):
传送JSONP响应res.location():
只设置响应的LocationHTTP头,不设置状态码或者closeresponseres.redirect():
设置响应的LocationHTTP头,并且设置状态码302res.render(view,[locals],callback):
渲染一个view,同时向callback传递渲染后的字符串,如果在渲染过程中有错误发生next(err)将会被自动调用。
callback将会被传入一个可能发生的错误以及渲染后的页面,这样就不会自动输出了。
res.send():
传送HTTP响应res.sendFile(path[,options][,fn]):
传送指定路径的文件-会自动根据文件extension设定Content-Typeres.set():
设置HTTP头,传入object可以一次设置多个头res.status():
设置HTTP状态码res.type():
设置Content-Type的MIME类型路由我们已经了解了HTTP请求的基本应用,而路由决定了由谁(指定脚本)去响应客户端请求。
在HTTP请求中,我们可以通过路由提取出请求的URL以及GET/POST参数。
接下来我们扩展HelloWorld,添加一些功能来处理更多类型的HTTP请求。
创建express_demo2.js文件,代码如下所示:
express_demo2.js文件代码:
varexpress=require('
//主页输出'
function(req,res){console.log('
主页GET请求'
res.send('
HelloGET'
})//POST请求app.post('
主页POST请求'
HelloPOST'
})///del_user页面响应app.get('
/del_user'
/del_user响应DELETE请求'
删除页面'
})///list_user页面GET请求app.get('
/list_user'
/list_userGET请求'
用户列表页面'
})//对页面abcd,abxcd,ab123cd,等响应GET请求app.get('
/ab*cd'
function(req,res){console.log('
/ab*cdGET请求'
正则匹配'
$nodeexpress_demo2.js应用实例,访问地址为http:
8081接下来你可以尝试访问http:
8081不同的地址,查看效果。
在浏览器中访问http:
8081/list_user,结果如下图所示:
8081/abcd,结果如下图所示:
8081/abcdefg,结果如下图所示:
静态文件Express提供了内置的中间件express.static来设置静态文件如:
图片,CSS,JavaScript等。
你可以使用express.static中间件来设置静态文件路径。
例如,如果你将图片,CSS,JavaScript文件放在public目录下,你可以这么写:
app.use(express.static('
public'
));
我们可以到public/images目录下放些图片,如下所示:
node_modulesserver.jspublic/public/imagespublic/images/logo.png让我们再修改下'
应用添加处理静态文件的功能。
创建express_demo3.js文件,代码如下所示:
express_demo3.js文件代码:
app.use(express.static('
$nodeexpress_demo3.js应用实例,访问地址为http:
8081执行以上代码:
8081/images/logo.png(本实例采用了菜鸟教程的logo),结果如下图所示:
GET方法以下实例演示了在表单中通过GET方法提交两个参数,我们可以使用server.js文件内的process_g