GVKun编程网logo

使用Node.js进行Web开发(一)(node.js web开发)

9

在本文中,我们将带你了解使用Node.js进行Web开发在这篇文章中,我们将为您详细介绍使用Node.js进行Web开发的方方面面,并解答一常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的d

在本文中,我们将带你了解使用Node.js进行Web开发在这篇文章中,我们将为您详细介绍使用Node.js进行Web开发的方方面面,并解答常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的django+sqlite3进行web开发(一)、java web开发(一)、Java Web开发(一) —— 初识web以及开发工具Dreamweaver的初步使用、Node Web开发(Node.js Web Development, 5th Edition)_第一章(1)

本文目录一览:

使用Node.js进行Web开发(一)(node.js web开发)

使用Node.js进行Web开发(一)(node.js web开发)

在这篇开始,我们学习基于express框架开发一个微博网站。首先我们了解Node.js是基于MVC(模型-视图-控制器)的设计模式。

  • 模型是对象及其数据结构的实现,通常包含数据库操作;
  • 视图表示用户界面,在网站中通常就是HTML的组织架构;
  • 控制器用户处理用户请求和数据流、复杂模型,将输出传递给视图。

步骤

1、 安装express

nom install -g express

如果出现错误请看express无法识别
2、建立项目

express -t ejs microblog

之后发现当前目录下出现microblog文件夹,按照提示

cd microblog
npm install

安装完依赖,运行项目

npm run start

在浏览器中输入localhost:3000查看

在这里插入图片描述

项目建立成功!如果要关闭的话,Ctrl+c即可

工程结构解析

我们可以查看microblog下的文件目录所示

在这里插入图片描述

(1)是查看package.json文件

在这里插入图片描述

刚刚我们在运行项目使用npm run start时,start就是这里的start,代表项目开启node服务器,这个服务器的路径是在 ./bin/www中。dependencies是项目中所安装的依赖全都放在node_modules文件下.
(2)顺着上一步来到./bin/www文件

在这里插入图片描述

可以看到这里创建了一个Server服务器,app作为参数传入,看到上面app是在上一层的app.js文件中
(3)依旧顺着找到app.js文件

在这里插入图片描述

在这里看到视图是放在views文件夹下,app在使用时先引入routes里的内容,默认访问indexRouter中的内容,我们来看看route/index.js内容

在这里插入图片描述


在这里title:'Express’作为index的模板填入,而index模板是在views下的index.jade文件中,可以看到其中title作为了变量

在这里插入图片描述


这就是为什么我们一开始在浏览器中会打印那一段内容了。
(4)当然,我们也可以访问localhost:3000/users,会显示如下字段,为什么呢?和上面同样的道理哦

在这里插入图片描述


(5)不仅如此,我们还可以按照同样的方法自己在routes下新建一个hello.js

在这里插入图片描述

app.js中也要引入才可以

在这里插入图片描述


需要重新运行npm run start

在这里插入图片描述


自己新增路径也成功实现!!!
(6)动态路由路径也可以实现

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


动态路由也成功实现!!!
(7)控制权转移
express支持同意路径绑定多个路由相应函数,例如

在这里插入图片描述


但当你访问任何被这两条同样的规则匹配到的路径时,会发现请求总是被前一条路由规则捕获,后面的规则会被忽略。原因是 Express 在处理路由规则时,会优先匹配先定义的路由规则,因此后面相同的规则被屏蔽。
express提供了路由控制权转移的方法,即回调函数的第三个参数next,通过调用next(),会将路由控制权转移给后面的规则,例如

在这里插入图片描述


在浏览器中访问,可以发现在终端先打印了all methods captured,而浏览器中也显示了

在这里插入图片描述


在这里插入图片描述


这说明请求先被第一条路由规则捕获,完成 console.log 使用 next() 转移控制权,又被第二条规则捕获,向浏览器返回了信息。
上面例子中,app.all 定义的这个路由规则实际上起到了中间件的作用,把相似请求的相同部分提取出来,有利于代码维护其他next方法如果接受了参数,即代表发生了错误。使用这种方法可以把错误检查分段化,降低代码耦合度。

django+sqlite3进行web开发(一)

django+sqlite3进行web开发(一)

服务器配置

安装django

sudo apt-get install python-django -y

安装mysql(可选)

也可以直接使用sqlite

sudo apt-get install mysql-server-5.6
sudo apt-get install mysql-client-5.6

sudo apt-get install python-mysqldb  

测试项目Hello World

在我们的项目根目录下执行:

django-admin startproject HelloWorld

HelloWorld即是我们的项目名称。截图后的目录结构:

xl@xl-Z270-HD3:~/file/code/HelloWorld$ tree
.
└── HelloWorld
    ├── HelloWorld
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    └── manage.py

2 directories, 5 files

各个文件的作用:

  • HelloWorld: 项目的容器
  • manage.py: 命令行工具,用于和Django交互
  • HelloWorld/init.py:空文件,告诉python,该目录是一个Python包
  • HelloWorld/settings.py : 对该项目的配置文件
  • HelloWorld/urls.py : 该项目的url声明
  • HelloWorld/wsgi.py : 服务器入口

然后,运行服务器:

python manage.py runserver

当服务器运行成功后,就可以访问http://127.0.0.1:8000查看''Welcome to Diango''界面。

添加自己的app

一个Django project下可以有多个App,而一个App就是一个具体的Web应用程序,用来实现具体的功能和完成具体的事项。 可以通过manage.py快速创建一个app:

python manage.py startapp testapp

这样就创建了一个名为testapp的Django App,看看当前目录的变化,在project根目录下会多出一个testapp的目录,其目录结是:

xl@xl-Z270-HD3:~/file/code/HelloWorld/HelloWorld/testapp$ tree
.
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

1 directory, 7 files

其中:

  • admin.py:用于设置 Django 自带的强大管理后台;
  • apps.py:声明了这个的 App 信息;
  • models.py:用于定义数据模型(数据库表);
  • tests.py:用于单元测试;
  • views.py:用于定义 App 的视图,也就是业务函数。

这包含了一个 Web 应用的后台管理、数据库定义、逻辑视图,在结合项目的路由映射,就是一个 Django App 最基本的结构。

migrations 文件夹目前是一个空的文件夹,其中会记录应用的数据模型迁移的情况。

然后我们需要使用manage.py文件的migrate 和 makemigrations 命令,创建一些默认的数据库表:

python manage.py migrate

运行命令,会显示将会对数据库进行很多个表的实例化和迁移. 然后,我们将testapp添加到HelloWorld项目的App列表中,即在settings.py文件中找到INSTALLED_APPS,将testapp加到最后面。 接着,可以使用 makemigrations 命令来检测项目中数据模型的数据迁移变化:

python manage.py makemigrations testapp

创建超级用户

我们可以为项目创建一个超级管理员,通过这个账户,可以快速使用 Django 强大的后台功能,对数据模型进行管理:

python manage.py createsuperuser

根据提示输入用户名、邮箱和密码,一个超级用户就创建好了。我们可以运行项目,访问http://127.0.0.1:8000/admin路径看看:

python manage.py runserver

可以使用刚刚创建的管理员账户登录。

修改我们的网页

修改视图文件

编辑testapp目录下views.py,加入以下内容:

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world!")

在这里,我们定义了一个hello视图。 注意, 一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest;它返回一个HttpResponse实例。为了使一个Python的函数成为一个Django可识别的视图,它必须满足这两个条件。

进行URL配置

为了告诉服务器我们配置的视图,需要进行URL配置。在HelloWorld目录下的urls.py中添加:

from testapp.views import hello

urlpatterns = [
    ...
    url(r''^hello/$'', hello),
]

这时,我们再重新启动服务器,访问 http://127.0.0.1:8000/hello/,就可以看到不一样的结果了。

编写一个动态网页

上面的例子每次返回的都是一样的内容,它可以算是一个静态网页。但其实使用python每次返回不同的内容,就可以算是动态网页了。

我们把views.py中的添加一个视图:

import time

def current_time(request):
    return HttpResponse("Current time is: "+time.strftime(''%Y-%m-%d %H:%M:%S''))

同样在urls.py中配置URL:

from testapp.views import current_time

urlpatterns = [
    ......
    url(r''^current_time/$'', current_time),
]

这时,我们再重新启动服务器,访问 http://127.0.0.1:8000/current_time/,就可以看到每次都不一样的网页了。

数据库

与数据库相关的代码一般写在models.py中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码。

创建数据表

我们打开 testapp/models.py 文件,修改其中的代码如下:

from django.db import models
 
 
class Test(models.Model):
    a = models.CharField(max_length=30)
    b = models.IntegerField()

然后,同步一下数据库。(默认使用sqlite3数据库,无需做任何配置)

先进入到manager.py所在的文件夹下,输入以下命令:

# Django 1.6.x 及以下
python manage.py syncdb
 
# Django 1.7 及以上的版本需要用以下命令
python manage.py makemigrations
python manage.py migrate

Django生成了一系列的表,也包括我们在testapp/models.py中定义的testapp_test这个表。

插入和查询数据

作为测试,我们可以调起Django的shell:

xl@xl-Z270-HD3:~/file/code/HelloWorld/HelloWorld$ python manage.py shell
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from testapp.models import Test
>>> Test.objects.create(a="zhangsan", b=24)
<Test: Test object>
>>> Test.objects.get(a="zhangsan")
<Test: Test object>
>>> 

注意这里使用.objects.get() 方法查询出来的对象都是显示一个结构体。 具体操作可以参考https://code.ziqiangxuetang.com/django/django-models.html

java web开发(一)

java web开发(一)

·web标准

1.为什么使用web标准?

-内容能被更广泛的装备所访问

2.构成:①HTML(Hyper Text Markup Language 网页的具体内容和结构)---------结构
             ②CSS(Cascading Style Sheets。网页的样式(美化网页))---------表现

             ③JavaScript(页面的动态效果)--------行为

·HTML

1.Html文档基本格式:
文档后缀名.html或者.htm
<!doctype html> 必须用在开头:用于向浏览器说明当前文档使用的哪种HTML规范标准

<html>:根标记,用于告知浏览器本文件是个html文档

<head>:头部信息,主要用来放置其他位于头部的标记,像<title>、<meta>、<link>、<style>等

<meta>:描述HTML文档的描述,关键词,作者,字符集等。

<body>:主体标记。网页上要显示的所有内容都写在此处

2.HTML标签
通常成对出现、标签对的第一个标签叫开始标签(开放标签)<html><p>,第二个是结束标签(闭合标签)</html></p>;
标题:h1,h2,h3,h4,h5…
段落:p
换行:br
容器:div,span(用来容纳其他标签)
表格:table,tr,td
列表:ul,ol,li
图片:img
表单:input
链接:a 
注释:<!--  注释 -->
标签上有自己属性:比如id,写法:属性=“值”
开发工具- Dreamweaver

 

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>测试</title>
<!--行内样式-->
      <style type="text/css">
       #txt{
   
    background-color:#9CF !important;
    width:800px;
    
    }
 
   </style>

</head>

<body>
 <div id="txt">
   
   
   <h1> 你好,秋天 </h1>
<p>zhaoqi @ 2018-10-08</p>
<p>春天是一把琴,将优美琴声带给世人,叫他们脱去衣袄,重新奔跑在温暖的大地中;夏天是一把扇,扇去炎热,以热情的脸庞去温抚他人;冬天时一雪花,飘飘而来,为人们带来雪的姿态,但是秋天的叶则更令我喜欢。</p>
<p>秋天的叶是凄凉的飘飘洒洒的落叶如一只蝴蝶,飞舞着,飘到大地母亲的怀抱里。</p>
<p>秋天的叶是一位化妆师,把世界渲染,把大地变成金黄色;秋天的叶,默 默无闻,春天夏天,树叶的绿叶衬托使鸟儿莺歌燕舞,秋天的你,默默而去, 但你不伤心,因为你熟知"落红不是无情物,化作春泥更护花。"</p>
<p>秋日的叶是富有诗意的,你好,秋天,你好!</p>
<p>浏览[1051]|评论[105]</p>
<p>注:文字摘自网络</p>

</body>
</html>

·CSS

pHtml中引用样式三种方式(样式使用的顺序:行内样式—内嵌式—外链式)
•行内样式:在html标签上写样式(不建议,后期不好维护)
•内嵌式:在html文档的头部<head>中添加<style>,在style标签里面写样式
•外链式:新建一个css样式文件,引入到html中(推荐)
  href:要引入的css文件

  type:要引入的文件的类型text/css代表引入的是

    个样式表文件

  rel:当前文档与引入文档的关系,stylesheet代表被引入的是一个样式表文件

CSS的选择器:
•id选择器:#id名{属性1 : 属性1的值 ; }
#txt{
 background-color:#f00 !important;
 width:800px;    
}
•class选择器:.class名{属性1 : 属性1的值 ; }
.myclass{
 text-align:center;
 color:#FFF;
 font-family:楷体;
 font-style:italic;
}
标签选择器:标签名 {属性1 : 属性1的值 ; }

p{
 color:#FFF;
 text-indent:2em;
 line-height:35px;
}
 

Java Web开发(一) —— 初识web以及开发工具Dreamweaver的初步使用

Java Web开发(一) —— 初识web以及开发工具Dreamweaver的初步使用

1、Web概述

Web标准不是某一个标准,而是由W3C和其他标准化组织制定的一系列标准的集合。 包含我们所熟悉的HTML、CSS、JavaScript等等。 通过web标准,展示统一内容。

 

2、Web标准构成

结构标准

HTML(Hyper Text Markup Language 超文本标记语言,网页的具体内容和结构,网页布局、整体架构、内容)

表现标准

CSS(Cascading Style Sheets层叠样式表。网页的样式(美化网页),页面的字体等等)

         行为标准

JavaScript(页面的动态效果)

 

3、开发工具- Dreamweaver

 

4、网页开发入门-CSS

Html中引用样式三种方式(样式使用的顺序:行内样式—内嵌式—外链式)

行内样式:在html标签上写样式(不建议使用,后期不好维护)

内嵌式:在html文档的头部<head>中添加<style>,在style标签里面写样式

外链式:新建一个css样式文件,引入到html中

 

CSS的写法

         选择器{

属性1:属性1的值

属性2:属性2的值

}

 

CSS的选择器

id选择器:#id名{属性1 : 属性1的值 ; }

class选择器:.class名{属性1 : 属性1的值 ; }

标签选择器:标签名 {属性1 : 属性1的值 ; }

 

5、网页开发入门-HTML

HTML标记或者标签

通常成对出现:<html></html>、<p></p>

标签对的第一个标签叫开始标签(开放标签),第二个是结束标签(闭合标签)

标签也分单标签和双标签,其中<img /> <hr />是但标签

标签上有自己属性:比如id,写法:属性=“值”

注释:<!-- 注释 -->

标签:

<div>:用来划分区域

<p>:段落<h1>~<h6>:标题从大到小

其余的将在以后的学习中继续增添。

 

6、举个栗子

 

<!DOCTYPE HTML>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <title>你好,秋天</title>

        <link href="mycss.css" type="text/css" rel="stylesheet">

        <!-- 行内样式 -->

             <!--<style typle = "txt/css">

                   

                    #txt{

                           background-color: #F00!important;

                           width:800px;

                    }

        </style> -->

       

    </head>

   

    <body>

      <!-- 注释 -->

    <div id="txt">

        <h3>你好,秋天</h3>

    <p>zhaoqi @ 2018-10-08</p>

    <p>春天是一把琴,将优美琴声带给世人,叫他们脱去衣袄,重新奔跑在温暖的大地中;夏天是一把扇,扇去炎热,以热情的脸庞去温抚他人;冬天时一雪花,飘飘而来,为人们带来雪的姿态,但是秋天的叶则更令我喜欢。</p>

    <p>秋天的叶是凄凉的飘飘洒洒的落叶如一只蝴蝶,飞舞着,飘到大地母亲的怀抱里。</p>

    <p>秋天的叶是一位化妆师,把世界渲染,把大地变成金黄色;秋天的叶,默 默无闻,春天夏天,树叶的绿叶衬托使鸟儿莺歌燕舞,秋天的你,默默而去, 但你不伤心,因为你熟知"落红不是无情物,化作春泥更护花。"</p>

    <p>秋日的叶是富有诗意的,你好,秋天,你好!</p>

    <p>浏览[1051]|评论[105]</p>

    <p>注:文字摘自网络</p>

      </div>

 

 

    </body>

</html>

 

 

 

 

 

创建同一目录下的css文件(其中第一个是id选择器,第二个是class选择器,第三个是标签选择器)

@charset "utf-8";

/* CSS Document */

#txt{           

      background-color: #FC6!important;

      width:800px;

}

 

.myclass{

      text-align:center;

      color:#FFF;

      font-family:楷体;

      font-style:italic;

}

 

p{/*对所有带“p”的进行编辑*/

      color:#FFF;

      text-indent:2em;/*首行缩进*/

      line-height:35px;/*行高*/

}

 

*end 2019-3-6

Node Web开发(Node.js Web Development, 5th Edition)_第一章(1)

Node Web开发(Node.js Web Development, 5th Edition)_第一章(1)

JavaScript是每一个前端Web开发人员都能触手可及的工具,所以它成为一门非常流行的编程语言,以至于被定型为一种专为Web开发的编程语言。读这本书之前,你可能听说过Node.js,这是一个在Web浏览器之外运行JavaScript程序的平台。到目前为止,Node.js已经有十年的发展历史了,已成为一个成熟的编程平台,被广泛应用于各种大小型项目中。

本书将介绍Node.js。在本书的结尾,你将了解使用Node.js开发服务器端Web应用程序的完整生命周期,从概念到部署到安全防御。在撰写本书时,我们假设:

  • 你已经知道如何编写软件
  • 你熟悉JavaScript
  • 你对使用其他语言开发Web应用程序有所了解

当我们评估一个新的编程工具时,我们是否会因为它是流行的新工具而选择它?也许我们中的一些人会这样做,但成熟的方法是对不同的工具进行权衡比较,从中选择适合自己的工具。这就是本章的内容,即介绍使用Node.js的技术原理。在编写代码之前,我们必须思考Node.js是什么,以及Node.js为何适合软件开发工具的整个市场。然后,我们将深入了解应用程序开发工作,并认识到通常最好的学习方法就是动手实践。

本章将介绍以下主题:

  • Node.js简介
  • 使用Node.js可以做什么
  • 为什么要使Node.js
  • Node.js的体系结构
  • Node.js的性能、利用率和可扩展性
  • Node.js、微服务架构和测试
  • 使用Node.js实现12要素用程序模型

    Node.js概述

    Node.js是一个激动人心的新平台,可用于开发Web应用程序、应用程序服务器、任何类型的网络服务器或客户端以及通用编程。它通过巧妙地服务器端JavaScript、异步I/O和异步编程结合在一起,在Web应用程序中实现了极高的可扩展性。

虽然Node.js只有十年历史,但已经迅速崛起,并且在现在的项目开发中扮演着重要的角色。无论是大公司还是小公司,都在将Node.js用于大型和小型项目。例如,PayPal已经将许多服务器从Java平台迁移到Node.js平台。

Node.js体系架构与其他应用程序平台截然不同。当线程被广泛地用于扩展应用程序而导致所有CPU性能被占用时,Node.js因为线程固有的复杂性而避开线程。有人说是因为单线程事件驱动架构内存占用低,吞吐量高,负载下的延迟曲线更好,编程模型更简单。Node.js平台正处于快速发展阶段,许多人认为它是 Java、PHP、Python或RubyonRails等传统Web应用程序体系架构的有力替代品。

从本质上讲,Node.js是一个独立的JavaScript引擎,具有适合于通用编程的扩展,同时明确关注应用服务器开发。即使我们将Node.js与应用服务器平台进行比较,Node.js 也不是应用服务器。相反,Node.js是一个类似于Python、Go或Java SE的编程运行时。虽然Node.js能够编写Web应用程序框架和应用程序服务器,但Node.js只是一个执行JavaScript程序的系统。

Node.js的关键架构选择是事件驱动,而非多线程。Node.js体系结构依赖于将阻塞操作分派给单线程循环事件,将结果作为调用事件处理函数的事件返回给调用方。在大多数情况下,事件被转换为由异步函数处理的Promise。由于Node.js基于Chrome的V8 JavaScript引擎,因此在Chrome中实现的性能和功能能很快同步到Node.js平台。

Node.js核心模块足够通用,能够支持所有基于TCP或UDP协议的所有类型的服务器,无论是域名系统(DNS)、HTTP、internet中继聊天(IRC)还是FTP。虽然Node.js能够开发internet服务器或客户端,但主要用途还是在于定期的网站开发,以取代Apache/PHP或Rails等堆栈技术,或对现有网站进行改进。例如,可以通过Node.js的Socket.IO库轻松地给现有网站添加实时聊天功能或对现有网站进行监控。由于Node·js的轻量级、高性能特性,所以通常将Node.js作为粘合服务器使用。

一个特别有趣的组合是使用Docker和Kubernetes等工具或AWS Lambda等功能在现代云基础设施上部署微型服务器。将大型应用程序划分为易于部署的大规模微服务时,Node.js运行非常良好。

让我们对Node.js进行更深入的了解。

Node.js的能力

Node.js是一个在Web浏览器之外编写JavaScript应用程序的平台。这不是我们在Web浏览器中熟悉的JavaScript环境!虽然Node.js执行的JavaScript语言与我们在浏览器中使用的JavaScript相同,但Node.js没有与浏览器相关的功能。例如,没有内置HTML DOM。

除了执行JavaScript的原生功能外,Node.js内置模块还提供以下功能:

  • 命令行工具(shell脚式)
  • 一种交互式终端风格的程序,即读-值-打印循环(REPL)
  • 优秀的进程控制功能,可监督子进程
  • 用于处理二进制数据的缓冲区对象
  • 具有全面的事件驱动回调的TCP或UDP套接字
  • DNS查找
  • 一个位于TCP库文件系统访问之上的HTTP、HTTPS和HTTP/2客户端服务器。
  • 通过断言内置的基本单元测试支持
    Node.js的网络层是低层级的,同时也非常简单易用。例如,你使用HTTP模块编写编写HTTP服务器或客户端只需几行代码。这是非常强大的,能让开发者非常容易地获得协议请求,并让你精确地实现那些应该在请求响应中返回的HTTP标头。

通常Web应用程序开发者不需要处理低级别的HTTP或其他协议;相反,我们倾向于更高效地使用更高级的接口,例如,对PHP开发者,由于Apache/Nginx/等已经提供了HTTP,所以他们不需要编写实现堆栈的HTTP服务器部分。相反,Node.js程序员则需要编写HTTP服务器,并在该服务器上运行应用程序代码。

为了简化HTTP服务器开发,Node.js社区有诞生了几个Web应用程序框架,如Express,提供了程序员常需的高级接口。你可以快速地使用内置功能(如sessions、cookie、服务静态文件和日志记录)配置HTTP服务器,从而专注于业务逻辑。其他框架提供OAuth2支持或关注RESTAPI,等等。

使用Node.js的社区已经在这个基础上创建了各种各样的工具。

Node.js能做什么

Node.js并不局限于Web服务器应用开发,Node.js社区已经将Node.js带向了其他方向:

  • 构建工具:Node.js已成为软件开发或开发服务基础设施通信的命令行工具的流行选择。Grunt、Gulp和Webpack被前端开发人员广泛用于打包网站构建素材。Babel广泛地用于转换现代ES2016代码,以便在较旧的浏览器上运行。流行的CSS优化器和处理器(如POSTSS)是使用Node.js中编写的。静态网站生成系统(如Metalsmith、Punch和AkashaCMS)使用Node.js命令行运行,并生成上传到Web服务器的网站内容。
  • Web UI测试:Puppeter让你可以控制无标头Chrome Web浏览器实例。通过Puppeter,你可以使用功能齐全的现代Web浏览器开发Node.js脚本。一些典型的用法是Web抓取和Web应用程序测试。
  • 桌面应用程序:Electron和NodeWebKit(NW.js)都是用于开发Windows、macOS和Linux桌面应用程序的框架。这些框架利用Node.js库包装的大量的Chrome组件使用Web UI技术开发桌面应用程序。由于应用程序是使用HTML5、CSS3和JavaScript编写的,因此可以使用各种先进的Web框架,如Bootstrap、React、VueJS和AngularJS等。许多流行的应用程序都是使用Electron构建的,包括Slack桌面客户端应用程序,Atom、Microsoft Visual Code编辑器、Postman REST客户端、GitKraken GIT客户端和U盘系统镜像制作工具Etcher。
  • 移动应用程序:Node.js for Mobile Systems项目能够让你使用Node.js开发iOS和Android智能手机或平板电脑应用程序。苹果的App Store规则不允许接入具有JIT功能的JavaScript引擎,这意味着常规的 Node.js不能用于iOS应用程序开发。对于iOS应用程序开发,该项目使用Node.js-on-ChakraCore绕过App Store规则。对于Android应用程序开发,该项目在Android上使用常规Node.js。在撰写本文时,该项目正处于开发的早期阶段,但看起来很有希望。
  • 物联网(IoT):Node.js是物联网项目中非常流行的语言,Node.js运行在大多数基于ARM的单板计算机上。最最具代表性的例子是NodeRED项目。它提供了一个图形编程环境,允许你通过将区块连接在一起来绘制程序。它具有面向硬件的通用I/O(GPIO)机制,例如,与Raspberry Pi或Beaglebone单板计算机上的通用I/O(GPIO)引脚交互。

你可能已经在使用Node.js应用程序但是没有意识到这一点!JavaScript在Web浏览器之外有一席之地,这不仅仅归功于Node.js。

服务器端JavaScript

别再挠头了!当然,你可能正在这样做,并喃喃自语,“浏览器语言在服务器上能做什么呢?”事实上,JavaScript在浏览器之外有着漫长且基本未知的历史。JavaScript是一种编程语言,就像其他所有语言一样,最好的问题是“为什么JavaScript仍被困在Web浏览器中?”

早在Web混沌时代,编写Web应用程序的工具就处于初级阶段。在Java和PHP诞生的初期,一些开发人员使用Perl或TCL编写CGI脚本。即便如此,服务器端仍然有JavaScript的身影。最初使用JavaScript编写的Web应用服务器是Netscape的LiveWire服务器。微软ASP的一些版本使用JScript,这是微软自己开发的JavaScript版本。最近的一个JavaScript服务器器项目是Java的RingoJS应用程序框架。Java6和Java7都提供了RhinoJavaScript引擎。在Java8中,Rhino被抛弃,取而代之的是更新的Nashorn JavaScript引擎。

换句话说,浏览器之外的JavaScript并不是什么新鲜事,虽然并不常见。

你已经了解到Node.js是一个在Web浏览器之外编写JavaScript应用程序的平台。Node.js社区将该平台远用于大量的应用程序类型,远远超过最初为该平台设想的数量。这证明了Node.js的流行程度,但是我们仍然必须考虑使用Node.js的技术原因。

英文电子书推荐

Beginning iOS Game Center and GameKit: For iOS, tvOS, and MacOS, 2nd Edition

API Marketplace Engineering: Design, Build, and Run a Platform for External Developers

Azure Cloud Security for Absolute Beginners: Enabling Cloud Infrastructure Security with Multi-Level Security Options

More Java 17: An In-Depth Exploration of the Java Language and Its Features, 3rd Edition

Cognitive Behavior and Human Computer Interaction Based on Machine Learning Algorithms

NSX-T Logical Routing: Fortify Your Understanding to Amplify Your Success

Innovative SAP SuccessFactors Recruiting: A Guide to Creating Custom Integration and Automation

Simplifying Service Management with Consul: Overcome connectivity and security challenges within dynamic service architectures

关于使用Node.js进行Web开发的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于django+sqlite3进行web开发(一)、java web开发(一)、Java Web开发(一) —— 初识web以及开发工具Dreamweaver的初步使用、Node Web开发(Node.js Web Development, 5th Edition)_第一章(1)的相关信息,请在本站寻找。

本文标签: