资讯专栏INFORMATION COLUMN

Node.js学习——开篇

AlexTuan / 631人阅读

摘要:简称,下同从此有了开发后段应用程序的能力。因为使用的是语言,所以一发布以来就受到了广大前端开发人员的喜爱。通过非阻塞流事件驱动机制展现了它超强的高并发能力。现在我们就开始学习。

前言:自从下决心转学前端以来,我的专业课java基本荒废了,所以对于后台开发的逻辑也已基本忘干净了。但是作为一名准前端程序猿,我认为还是有必要了解后端开发的,虽不必深入学习,但是能够了解项目从前端到后端的整个流程,实现简单的业务逻辑(增删改查)应该对我们大有裨益。NodeJS应该说是前端开发人员涉及后端开发的最佳选择,因为使用的是前端很熟悉的Javascript语言。

一、什么是Node.js

Node.js是一个基于V8引擎的服务器端Javascript运行环境。Javascript(简称JS,下同)从此有了开发后段应用程序的能力。

因为使用的是JS语言,所以一发布以来就受到了广大前端开发人员的喜爱。很多前端开发人员开始涉足后端开发,使用Node.js重构前端工具。

Node.js通过非阻塞I/O流、事件驱动机制展现了它超强的高并发能力。此外,Node使用的是高性能的V8引擎,提供了很多不同用途的API,采用全新的编译技术,实现了一个高性能的服务器。

二、Node.js环境安装

Node.js的环境安装十分简单,去官网 http://nodejs.org/en/ 下载稳定版本安装包,点击下一步下一步安装即可。

完成以后可以打开CMD输入node -v查看是否安装成功:

C:Usersdawei>node -v
v6.11.1

出现node的版本号则表示安装成功。

现在我们就开始学习Nodejs。Node.js中,将很多功能划分为一个个module(模块)。Node.js中的很多功能都是通过模块来实现的。

三、http模块

HTTP模块用于创建服务器,接收和响应客户端的请求。

//1、引入http模块
var http = require("http");

//创建服务器
var server = http.createServer(function (req , res) {
    //发送HTTP头部
    //HTTP状态码:200:OK
    //设置HTTP头部,状态码是200,文件类型是html,字符集是utf-8
    res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
    
    //发送相应数据
    res.write("Hello Node.js");
    
    //结束处理程序,返回数据
    res.end();
});

server.listen(8080);      //监听端口

//在终端打印如下信息,提示服务器已启动
console.log("Server running at http://127.0.0.1:8080/");  

这样我们就完整的创建了一个web服务器,可以在浏览器通过http://127.0.0.1:8080访问该服务器。

回调函数中的req对象包含了客户端请求的信息,可以使用req.url属性拿到用户请求的URL地址,在后期我们就是要通过不同的URL来设计不同的路由。那么识别这个URL,就用到了URL模块。

四、URL模块

URL模块提供了几个方法用于操作url。

url.parse(req.url):解析url,将url地址转为url对象

url.format():将url对象转为url字符串,是parse方法的逆向操作

url.resolve(from,to) :添加或者替换路由

1、url.parse()

假设在上面的代码段中引入了url模块

url.parse(req.url)

那么将会打印如下内容
{
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: null,
  query: null,
  pathname: "/",
  path: "/",
  href: "/" }
  

由于我们只是访问了根路径,所以内容基本为空,很多情况下我们需要访问详细的页面并且传递参数
http://127.0.0.1:8080/login.html?uaername=dawei&pass=123

{
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: "?uaername=dawei&pass=123",
  query: "username=dawei&pass=123",
  pathname: "/login.html",
  path: "/login.html?uaername=dawei&pass=123",
  href: "/login.html?uaername=dawei&pass=123" }

可以看到,这个对象的query属性保存了我们的参数,也叫做查询字符串。pathname属性中保存了我们的访问路径。这两个属性很常用。

我们往往需要获取参数信息,在服务器端做进一步处理。在JS中我们可以使用字符串截取来获取参数,不过再这里我们可以直接给parse方法传递一个参数true来将查询字符串转为对象格式,从而很方便的获取。

url.parse(req.url,true)

{
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: "?username=dawei&pass=123",
  query: { username: "dawei", pass: "123" },
  pathname: "/login.html",
  path: "/login.html?username=dawei&pass=123",
  href: "/login.html?username=dawei&pass=123" }

这样我们就可以很方便的获取参数的值。

2、url.resolve() a、增加路由
var a = url.resolve("http://example.com/", "/one");
console.log(a);     //  http://example.com/one
b、替换路由
var b = url.resolve("http://example.com/one", "/two");
console.log(b);        //   http://example.com/two

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89985.html

相关文章

  • 前端学习开篇

    摘要:写在前边从去年一直陆续学习前端的知识,起初学习和写页面。自学前端主要还是有一个明确的目标,这样才能有效的学习和容易坚持。通过这次任务的实现能够系统的了解前端的开发流程,以及一些工具的使用。 写在前边 从去年一直陆续学习前端的知识,起初学习HTML和CSS写页面。但是觉得自己对这方面没有太好的天赋,学着忘着,很是痛苦。在接触前端过程中,发现应用javascript实现一些功能,自己比较...

    kohoh_ 评论0 收藏0
  • Node.js 高级进阶之 fs 文件模块学习

    摘要:回调函数提供两个参数和,表示有没有错误发生,是文件内容。文件关闭第一个参数文件时传递的文件描述符第二个参数回调函数回调函数有一个参数错误,关闭文件后执行。 showImg(//img.mukewang.com/5d3f890d0001836113660768.jpg); 人所缺乏的不是才干而是志向,不是成功的能力而是勤劳的意志。 —— 部尔卫 文章同步到github博客:https:/...

    verano 评论0 收藏0
  • 前端周刊第64期:你真的会提问么?

    摘要:但是究竟什么是区块链呢如何基于区块链构建去中心化的应用这个系列文章很有料,有图文解释有代码实例,非常适合入门。想知道我接下来会写些什么欢迎订阅我的掘金专栏或知乎专栏前端周刊让你在前端领域跟上时代的脚步。 showImg(https://segmentfault.com/img/remote/1460000010417511); 共 2044 字,读完需 4 分钟。本期以《提问的智慧》作...

    wfc_666 评论0 收藏0
  • Python 基础起步(一)写在开篇的话,写给同为小白的你

    摘要:一个小白的成长日记大家好,这是我在饭否的第一篇笔记,先简单介绍一下自己,我于年在北京工业大学本科毕业,同年月来到法国巴黎工程师学校读研,在年月毕业后加入了法国兴业银行担任数据分析师的职位,主要负责数据质量监测,分析,潜在风险预测,前端可视化 一个小白的成长日记 大家好,这是我在饭否的第一篇笔记,先简单介绍一下自己,我于2016年在北京工业大学本科毕业,同年9月来到法国巴黎Efrei工程...

    shadowbook 评论0 收藏0
  • 如果想成为一名顶尖的前端,这份书单你一定要收藏!

    摘要:其中负载均衡那一节,基本上是参考的权威指南负载均衡的内容。开发指南读了一半,就是看这本书理解了的事件循环。哈哈创京东一本骗钱的书。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队 发表于云+社区专栏作者:link 2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍...

    callmewhy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<