分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

nodejs Web服务(Express)

发布时间:2023-09-06 01:16责任编辑:苏小强关键词:jsnodejsWeb

概述

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

使用 Express 可以快速地搭建一个完整功能的网站。

Express 框架核心特性:

可以设置中间件来响应 HTTP 请求。

定义了路由表用于执行不同的 HTTP 请求动作。

可以通过向模板传递参数来动态渲染 HTML 页面。

安装:

npm install express

npm install express --save

关联中间件安装:

npm install body-parser --save

npm install cookie-parser --save

npm install multer --save

    以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。

body-parser - node.js 中间件,用于处理 (ContentType)JSON, Raw, Text 和 URL 编码的数据。

cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。

multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。

Express中间件body-parser

    express项目中通常使用body-parser进行post参数的解析,最常用的是其中的json和urlencoded的parser,可分别对以JSON格式的post参数和urlencoeded的post参数进行解析,均可获得一个JSON化的req.body。

参考:

     express项目中使用body-parser

     body-parser github项目

Express API:

// 访问express静态资源 linkvar express = require(‘express‘);var app = express();app.use(express.static(‘public‘));// 工程目录/npm_modules/public/index.html// 启动var server = app.listen(8081, function () {})// 访问 http://serverIp:port/index.html// 用作接口服务器 linkvar express = require(‘express‘);var bodyParser = require(‘body-parser‘);// application/x-www-form-urlencoded 编码解析var parseForm = bodyParser.urlencoded({extended: false});// application/json编码解析var parseJson = bodyParser.json();var httpReq = express();// http://localhost:8081/index/IndexPage.htmlhttpReq.use(express.static(‘public‘));function testExpressApi() { ???/** ????* express get请求 ????* ?http://localhost:8081/obtain/clientOnlineState?name=aa01&password=010203 ????*/ ???httpReq.get(‘/obtain/clientOnlineState‘, function (req, resp) { ???????console.log(req.query); ???????resp.end(JSON.stringify(req.query)); ???}); ???/** ????* express post请求 ????* ?http://localhost:8081/update/remoteClientInfo ????* ?????{"name":"aa01","password":"010203"} ????*/ ???httpReq.post(‘/update/remoteClientInfo‘, parseJson, function (req, resp) { ???????console.log(req.body); ???????resp.end(JSON.stringify(req.body)); ???}); ???/** ????* 服务器监听8081端口 ????* @type {*} ????*/ ???var server = httpReq.listen(8081, function () { ???????// var host = server.address().address; ???????var port = server.address().port; ???????console.log("http://localhost:%s", port) ???});}

Express开发问题:

Q1.获取远程连接IP地址

var ip = req.headers[‘x-forwarded-for‘] || req.connection.remoteAddress;

参考:

     Express.js: how to get remote client address

     nodejs express获取不了用户的外网ip地址解决方法

参考:

     Express 4.x API 中文手册 api

     Node.js Express 框架 runoob基础教程

     nodejs的express使用介绍

     Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs

     body-parser-github 官方API

     expressjs-install

补充知识

P1.POST常见的几种提交数据方式

服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到 POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分。

application/x-www-form-urlencoded

最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。

Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。大部分服务端语言都对这种方式有很好的支持。例如 PHP 中,$_POST[‘title‘] 可以获取到 title 的值,$_POST[‘sub‘] 可以得到 sub 数组。

application/json

application/json 这个 Content-Type 作为响应头告诉服务端消息主体是序列化后的 JSON 字符串。JSON 格式支持比键值对复杂得多的结构化数据。

multipart/form-data

    这又是一个常见的 POST 数据提交的方式。我们使用表单上传文件时,必须让 form 的 enctyped 等于这个值。

text/xml

它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。

参考:

     application/json 四种常见的 POST 提交数据方式

     浅析application/x-www-form-urlencoded和multipart/form-data的区别

nodejs Web服务(Express)

原文地址:http://www.cnblogs.com/zhen-android/p/7638476.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved