NodejsExpress框架菜鸟教程文档格式.docx
- 文档编号:8445188
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:4
- 大小:18.87KB
NodejsExpress框架菜鸟教程文档格式.docx
《NodejsExpress框架菜鸟教程文档格式.docx》由会员分享,可在线阅读,更多相关《NodejsExpress框架菜鸟教程文档格式.docx(4页珍藏版)》请在冰点文库上搜索。
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对象来处理请求和响应的数据。
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('
//主页输出'
Hello
World'
app.get('
function(req,res){console.log('
主页
GET请求'
res.send('
HelloGET'
})//POST请求
app.post('
主页POST
请求'
HelloPOST'
})///del_user页面响应
/del_user'
function(req,res)
{console.log('
/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,结果如下图所示:
在浏览器中访问http:
8081/abcd,结果如下图所示:
在浏览器中访问http:
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文件代码:
$nodeexpress_demo3.js应用实例,访问地址为http:
8081执行以上代码:
8081/images/logo.png(本实例采用了菜鸟教程的logo),结果如下图所示:
GET方法以下实例演示了在表单中通过GET方法提交两个参数,我们可以使用server.js文件内的process_get路由器来处理输入:
index.htm文件代码:
html>
body>
formaction='
http:
8081/process_get'
method='
GET'
>
FirstName:
inputtype='
text'
name='
first_name'
br>
LastName:
last_name'
inputtype='
submit'
value='
Submit'
form>
html>
server.js文件代码:
var
app=express();
/index.htm'
function(req,res){res.sendFile(__dirname+'
+'
index.htm'
);
})app.get('
/process_get'
function(req,res){//输出JSON
格式varresponse={'
:
req.query.first_name,'
req.query.last_name};
console.log(response);
res.end(JSON.stringify(response));
nodeserver.js应用实例,访问地址为http:
8081浏览器访问http:
8081/index.htm,如图所示:
现在你可以向表单输入数据,并提交,如下演示:
POST方法以下实例演示了在表单中通过POST方法提交两个参数,我们可以使用server.js文件内的process_post路由器来处理输入:
8081/process_post'
POST'
varbodyParser=require('
body-parser'
//创建application/x-www-form-urlencoded编码解析varurlencodedParser=bodyParser.urlencoded({extended:
false})app.use(express.static('
{res.sendFile(__dirname+'
})app.post('
/process_post'
urlencodedParser,function(req,res){//输出JSON格式varresponse=
{'
req.body.first_name,'
req.body.last_name};
$nodeserver.js应用实例,访问地址为http:
文件上传以下我们创建一个用于上传文件的表单,使用POST方法,表单enctype属性设置为multipart/form-data。
head>
title>
文件上传表单title>
h3>
文件上传:
h3>
选择一个文件上传:
br/>
/file_upload'
post'
enctype='
file'
image'
size='
50'
/>
br/>
上传文件'
server.js文件代码:
varfs=require('
fs'
varbodyParser=require('
varmulter=require('
multer'
app.use(bodyParser.urlencoded({extended:
false}));
app.use(multer({dest:
'
/tmp/'
}).array('
{console.log(req.files[0]);
//上传的文件信息vardes_file=__dirname+'
+req.files[0].originalname;
fs.readFile(req.files[0].path,function(err,data)
{fs.writeFile(des_file,data,function(err)
{if(err){console.log(err);
}else{response=
{message:
'
Fileuploadedsuccessfully'
filename:
req.files[0].originalname};
}console.log(response);
res.end(JSON.stringify(response));
});
})varserver=app.listen(8081,function(){varhost=
server.address().addressvarport=server.address().portconsole.log('
$nodeserver.js应用实例,访问地址为http:
Cookie管理我们可以使用中间件向Node.js服务器发送cookie信息,以下代码输出了客户端发送的cookie信息:
express_cookie.js文件代码:
//express_cookie.js文件varexpress=require('
)varcookieParser=require('
cookie-parser'
)varutil=require('
util'
varapp=express()app.use(cookieParser())app.get('
Cookies:
+util.inspect(req.cookies));
})app.listen(8081)执行以上代码:
$nodeexpress_cookie.js现在你可以访问http:
8081并查看终端信息的输出,如下演示:
相关资料Express官网:
API中文版:
Express4.x
APIChineseExpress4.xAPI:
返回顶部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NodejsExpress 框架 菜鸟 教程