[Node.js]Express web框架
摘要Express是一个简洁灵活的node.js web应用框架,提供了一系列强大特性帮助你创建各种web应用和丰富的http工具。使用express可以快速创建一个完整功能的网站。 ExpressExpress核心特性:
安装Express 检查是否安装了cnpm,没有安装可以参考这里进行安装, 你可以使用我们定制的??(gzip 压缩支持) 命令行工具代替默认的? npm install -g cnpm --registry=https:
安装cnpm成功 安装Express框架,并将其保存到依赖列表中(注意:需要使用管理员身份运行cmd),进入web应用项目目录,这里项目所在目录为D:node,运行下面命令: cnpm install express --save
以上命令会将 Express 框架安装在当前目录的?node_modules?目录中,?node_modules?目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安装的: body-parser?- node.js 中间件,用于处理 JSON,Raw,Text 和 URL 编码的数据。 cnpm install body-parser --save
cookie-parser?- 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。 cnpm install cookie-parser --save
multer?- node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。 cnpm install multer --save
安装成功后,查看express的版本号 cnpm list express
一个例子接下来我们使用 Express 框架来输出 "Hello express World"。 以下实例中我们引入了 express 模块,并在客户端发起请求后,响应 "Hello express??World" 字符串。 创建 express_demo.js 文件,代码如下所示:
express=require("express" app='/',"Hello express world." server=app.listen(8081, host= port="应用实例,访问地址为 http://%s:%s"
执行 浏览器响应内容 请求和响应Express应用使用回调函数的参数request和response对象来处理请求和响应数据,如上面例子中: app.get('/',response){
response.send("Hello express world."
Request 该对象表示http请求,包含了请求查询字符串,参数,内容,http请求头部等属性。
Response 该对象表示http响应,即在接收到请求时向客户端发送的http响应数据。
路由上面了解request已经response对象的一些属性,而路由将决定请求的去处,决定响应给客户端的是哪个页面。 在http请求中,我们可以通过路由提取出请求的url以及get、post参数。 一个例子 创建express_demo2.js,代码如下: express=require("express" app=
app.get('/',"请求get""express index"
app.post('/',res){
console.log("主页post请求""post request"
app.get('/del_user',res){
console.log("/del_user 响应delete请求""删除页面"
app.get('/list_user',res){
console.log("/list_user get""用户列表页面"
app.get('/ab*cd',res){
console.log("/ab*cd get请求"'正则匹配' server=app.listen(8081, host= port="应用实例,访问地址为 http://%s:%s"
首页 用户列表 正则匹配 无法解析地址 静态文件Express 提供了内置的中间件?express.static?来设置静态文件如:图片, CSS,JavaScript 等。 你可以使用?express.static?中间件来设置静态文件路径。例如,如果你将图片, CSS,JavaScript 文件放在 public 目录下,你可以这么写: app.use(express.static('public'));
一个例子 访问目录为public/images中的图片girl.jpg,创建express_demo3.js express=require("express" app="public"'/','Hello World' server = app.listen(8081,<span style="color: #0000ff;">var host =<span style="color: #000000;"> server.address().address
<span style="color: #0000ff;">var port =<span style="color: #000000;"> server.address().port console.log( "应用实例,访问地址为 http://%s:%s"<span style="color: #000000;">,port)}) 访问 get方法 通过get方法提交2个参数,用process_get来处理输入: index.html
My first page.
server.js express=require("express" app="public"'/index.html',res) {
console.log(__dirname );
res.sendFile(__dirname +"/index.html"'/process_get',res) {
response= server = app.listen(8081, host = port ="应用实例,访问地址为 http://%s:%s"
请求 POST方法 通过server.js中的process_post来处理post请求 修改index.html中的method及请求路由 bodyParser=require("body-parser"
urlencodedParser=bodyParser.urlencoded({extended:'/process_post',urlencodedParser, (req,res) {
response={ first_name:req.body.first_name, last_name:req.body.last_name}; console.log(response); res.json(response) 文件上传 创建一个用于上传文件的表单,使用 POST 方法,表单 enctype 属性设置为 multipart/form-data。
My first page.
文件上传:
server.js express=require("express" app= fs = require("fs" bodyParser=require("body-parser" multer=require('multer'"public"'/tmp/'}).array('image''/index.html',res) {
console.log(__dirname );
res.sendFile(__dirname +"/index.html"'/file_upload',res) {
file=req.files[0
<span style="color: #0000ff;">var des_file=__dirname+"/"+<span style="color: #000000;">file.orginalname;fs.readFile(file.path,<span style="color: #0000ff;">function<span style="color: #000000;">(err,data){ fs.writeFile(des_file,data,<span style="color: #0000ff;">function<span style="color: #000000;">(err){ <span style="color: #0000ff;">if<span style="color: #000000;">(err){ console.log(err); }<span style="color: #0000ff;">else<span style="color: #000000;">{ response =<span style="color: #000000;"> { message:'File uploaded successfully'<span style="color: #000000;">,filename:file.originalname }; }; console.log(response); res.json(response); }) }); }) ; <span style="color: #0000ff;">var server = app.listen(8081,port); }) cookie管理
express = require('express' cookieParser = require('cookie-parser'<span style="color: #0000ff;">var app =<span style="color: #000000;"> express()
app.use(cookieParser()) app.get( '/',res) {console.log("Cookies: "<span style="color: #000000;">,req.cookies) }) app.listen( 8081)资料(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |