美文网首页
nodejs 构建web应用

nodejs 构建web应用

作者: believedream | 来源:发表于2018-04-30 15:12 被阅读0次

前言:
最近在看深入浅出nodejs第八章构建web应用。想把自己的阅读写成总结。也希望给他们做一个参考。常使用nodejs 模块 (http,path,url,queryString,fs)

1.如果用node构建一个服务器(http)

let http = require('http')
let port = 3000
let server = http.createServer((req, res) => {
    res.writeHead(200,{'Content-type':'text/plain'})
    res.end('hello word');
})
server.listen(port);
console.log(`server run ${port} port`)

上面的代码就是构建一个最简单的服务器,然后我们也许需求并没有这么简单,我们经常需要考虑如下问题:

  1. 请求方法的判断
  2. url的路径解析
  3. url中查询字符串解析
  4. cookie的解
  5. basic认证
  6. 表单数据的解析
  7. 任意格式文件上传
  8. session 会话

这个业务需要我们都需要从下面的函数开始扩展

var handle = function (req, res){
    res.writeHead(200,{'Content-type':'text/plain'})
    res.end('hello word');
}

2.请求方法

常见的请求方式有get, post, put, delete.

get: 获取一个请求
post:更新一个请求
put:新增一个请求
delete:删除一个请求

在nodejs中使用req.method可以获取请求方式
下面的代码是一种根据请求将页面分发的思路,是一种业务化繁为简的方式

//一种解决请求的方式
function reqMethods(req, res){
    switch (res.method){
        case POST:m_updata(req, res);break;
        case PUT:m_put(res,res);break;
        case DELETE:m_delete(res,res);break;
        case GET:
        default:m_get(res,res)
    }
}
function m_updata(req, res){
    // todo
    console.log(req.method)
}

function m_delete(res,res){
    console.log(req.method)
    
}
function m_put(res,res){
    console.log(req.method)
    
}
function m_get(res,res){
    console.log(req.method)
    
}

3. 路径解析 (url)

url.parse(res.url) 可以解析 把路由解析成字符串

http://localhost:3000/index.html?query=aaa#abc
url.parse(req.url)  ==> 下面的形式
{
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: "?query=aaa",
  query: "query=aaa",
  pathname: "/index.html",
  path: "/index.html?query=aaa",
  href: "/index.html?query=aaa"
}

3. url中查询字符串解析 (queryString)

 let cleintPath = url.parse(req.url)
 let query = queryString.parse(cleintPath.query)
获取到get请求参数
注意:
http://localhost:3000/404.html?query=aaa&query=aaa#ab
{
  query: - [
       "aaa",
       "aaa"
    ]
}

http://localhost:3000/404.html?query=aaa&page=aaa#abc
{
   query: "aaa",
   page: "aaa"
}

相关文章

  • nodejs 构建web应用

    前言:最近在看深入浅出nodejs第八章构建web应用。想把自己的阅读写成总结。也希望给他们做一个参考。常使用no...

  • (五)NodeJs构建web应用

    说明:该学习笔记参考《Node.js开发指南》,但是选用的模板和书中不同,添加了自己的理解和适当的补充!仅供参考!...

  • Jenkins构建maven

    Jenkins安装Jenkins构建androidJenkins构建mavenJenkins构建nodejs应用发...

  • Jenkins安装

    Jenkins安装Jenkins构建androidJenkins构建mavenJenkins构建nodejs应用发...

  • Jenkins权限管理

    Jenkins安装Jenkins构建androidJenkins构建mavenJenkins构建nodejs应用发...

  • Jenkins构建nodejs应用发布到nginx

    Jenkins安装Jenkins构建androidJenkins构建mavenJenkins构建nodejs应用发...

  • 使用vscode调试nodejs+typescript+expr

    前言 项目是 TS+Nodejs+Express构建用于前端调试的WEB服务器 基本环境 nodejs vscod...

  • 前端自动化构建+部署

    功能 web前端自动化构建+部署 特性 Docker Jenkins(with nodejs npm) Docke...

  • AngularJS

    AngularJS 是什么 概念:AngularJS主要用于构建单页面Web应用,是一种构建动态Web应用的结构化...

  • 构建web应用

    简介 request事件  request事件发生于网络连接建立,客户端向服务器端发送报文,服务器端解析报文,发现...

网友评论

      本文标题:nodejs 构建web应用

      本文链接:https://www.haomeiwen.com/subject/hywzlftx.html