位置: 编程技术 - 正文

Node.js和Express简单入门介绍(node和javascript)

编辑:rootadmin

推荐整理分享Node.js和Express简单入门介绍(node和javascript),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs和express的关系,node.js和js,node与express开发,node.js和js,nodejs与express,node.js和js,nodejs与express,node.js和node,内容如对您有帮助,希望把文章链接给更多的朋友!

仅仅入门如何用Node.js和Express搭建一个web服务器,没有说明太多概念性的东西。

一、 Nodejs简介

&#; ==Node是JavaScript语言的服务器运行环境。==

&#; 所谓“运行环境”有两层意思:首先,JavaScript语言通过Node在服务器运行,在这个意义上,Node有点像JavaScript虚拟机;其次,Node提供大量工具库,使得JavaScript语言与操作系统互动(比如读写文件、新建子进程),在这个意义上,Node又是JavaScript的工具库。

&#; Node内部采用Google公司的V8引擎,作为JavaScript语言解释器;通过自行开发的libuv库,调用操作系统资源。

二、Node.js的下载和安装

2.1 Node.js下载

node.js官网下载: 安装

&#; 下载成功之后是一个msi文件,双击安装即可。安装成功后,相应的环境变量都会自动配置,不需要我们再去手动配置。

&#; 一路next就可以安装成功。

2.3 测试Node.js是否安装成功

安装成功之后,可以在window控制台查看是否安装成功。

输入下面的命令查看node的版本。

直接输入node然后回车,就可以让node去执行我们的js代码了。

2.4 使用Node.js运行JavaScript代码

新建一个nodeproject目录,新建一个js文件。_hello.js

在windows控制台中,切换目录到js文件所在目录。然后输入

node _hello.js

三、Node.js中的一些基本概念澄清

3.1 Node.js不是JS应用、而是JS运行平台

&#; 看到Node.js这个名字,初学者可能会误以为这是一个Javascript应用,事实上,Node.js采用C++语言编写而成,是一个Javascript的运行环境。

&#; 既然不是Javascript应用,为何叫.js呢?因为Node.js是一个Javascript的运行环境。提到Javascript,大家首先想到的是日常使用的浏览器,现代浏览器包含了各种组件,包括渲染引擎、JavaScript引擎等,其中Javascript引擎负责解释执行网页中的Javascript代码。作为Web前端最重要的语言之一,Javascript一直是前端工程师的专利。不过,Node.js是一个后端的Javascript运行环境(支持的系统包括Linux、Windows),这意味着你可以编写系统级或者服务器端的Javascript代码,交给Node.js来解释执行,

3.2 Node.js与JavaScript的关系

&#; JavaScript包括3个部分:ECMAScript-、BOM、DOM。BOM与浏览器相关,DOM和HTML页面相关。Node.js中只是包括了ECMAScript-。所以我们以前的一些关于BOM的操作和DOM的操作都是基于浏览器端运行的,在Node.js中是无法使用的。

3.3 Node.js中几个全局变量

global:表示Node所在的全局环境,类似于浏览器的window对象。需要注意的是,如果在浏览器中声明一个全局变量,实际上是声明了一个全局对象的属性,比如var x = 1等同于设置window.x = 1,但是Node不是这样,至少在模块中不是这样(REPL环境的行为与浏览器一致)。在模块文件中,声明var x = 1,该变量不是global对象的属性,global.x等于undefined。这是因为模块的全局变量都是该模块私有的,其他模块无法取到。 process:该对象表示Node所处的当前进程,允许开发者与该进程互动。 console:指向Node内置的console模块,提供命令行环境中的标准输入、标准输出功能。

3.4 Node.js中的几个全局函数

setTimeout():用于在指定毫秒之后,运行回调函数。实际的调用间隔,还取决于系统因素。间隔的毫秒数在1毫秒到2,,,毫秒(约.8天)之间。如果超过这个范围,会被自动改为1毫秒。该方法返回一个整数,代表这个新建定时器的编号。 clearTimeout():用于终止一个setTimeout方法新建的定时器。 setInterval():用于每隔一定毫秒调用回调函数。由于系统因素,可能无法保证每次调用之间正好间隔指定的毫秒数,但只会多于这个间隔,而不会少于它。指定的毫秒数必须是1到2,,,(大约.8天)之间的整数,如果超过这个范围,会被自动改为1毫秒。该方法返回一个整数,代表这个新建定时器的编号。 clearInterval():终止一个用setInterval方法新建的定时器。 require():用于加载模块。 Buffer():用于操作二进制数据。

3.5 Node.js的核心模块

如果只是在服务器运行JavaScript代码,用处并不大,因为服务器脚本语言已经有很多种了。Node.js的用处在于,它**本身**还提供了一系列功能模块,与操作系统互动。这些核心的功能模块,不用安装就可以使用,下面是它们的清单。

http:提供HTTP服务器功能。 url:解析URL。 fs:与文件系统交互。 querystring:解析URL的查询字符串。 child_process:新建子进程。 util:提供一系列实用小工具。 path:处理文件路径。 crypto:提供加密和解密功能,基本上是对OpenSSL的包装。

三、搭建web应用

&#; 使用Node.js搭建web服务器,一般使用一些框架来帮助完成。

&#; express 是一个开源的node.js项目框架,初学者使用express可以快速的搭建一个Web项目,express中已经集成了Web的http服务器创建、请求和文件管理以及Session的处理等功能,所以express是非常适合初学者的入门学习。

3.1 安装Express框架

使用node.js自带的包管理器npm安装。

创建一个项目目录,Node_Hello。进入该目录,创建一个package.json文件,文件内容如下:

上面代码定义了项目的名称、描述、版本等,并且指定需要4.0版本以上的Express。

Node.js和Express简单入门介绍(node和javascript)

==从控制台首先进入刚才的项目目录==,然后输入如下命令,则会开始下载Express。

下载完成

3.2 创建启动文件

&#; 在上面的项目目录下,新建一个启动文件,名字暂叫 ==index.js== 。书写如下代码:

3.3 运行index.js文件

node index.js

3.4 使用浏览器访问

在浏览器输入下面的地址就可以访问我们刚刚搭建的web网站了。

web应用

&#; 使用webstorm搭建Node.js应用更加方便。

4.1 下载WebStorm,并安装

下载Webstorm: 创建Node + Express应用

4.3 Project目录结构

app.js:启动文件,或者说入口文件

package.json:存储着工程的信息及模块依赖,当在 dependencies 中添加依赖的模块时,运行 npm install ,npm 会检查当前目录下的 package.json,并自动安装所有指定的模块

node_modules:存放 package.json 中安装的模块,当你在 package.json 添加依赖的模块并安装后,存放在这个文件夹下

public:存放 image、css、js 等文件

routes:存放路由文件

views:存放视图文件或者说模版文件

bin:存放可执行文件(www)

4.4 各个主要文件的说明

4.4.1 app.js

4.4.2 bin/www

4.4.3 routes/index.js

4.4.4 对路由写法的优化

&#; 在前面的==app.js中==,每个模板都有添加一次路由比较麻烦,其实应该把添加路由的事情专门交给index.js来做。也就是可以把多个路由放在一个路由文件中。

可以改成:

==index.js==文件优化成: 这样管理起来就方便很多

4.4.5 ejs模板

模板引擎(Template Engine)是一个将页面模板和要显示的数据结合起来生成 HTML 页面的工具。如果说上面讲到的 express 中的路由控制方法相当于 MVC 中的控制器的话,那模板引擎就相当于 MVC 中的视图。

模板引擎的功能是将页面模板和要显示的数据结合起来生成 HTML 页面。它既可以运 行在服务器端又可以运行在客户端,大多数时候它都在服务器端直接被解析为 HTML,解析完成后再传输给客户端,因此客户端甚至无法判断页面是否是模板引擎生成的。有时候模板引擎也可以运行在客户端,即浏览器中,典型的代表就是 XSLT,它以 XML 为输入,在客户端生成 HTML 页面。但是由于浏览器兼容性问题,XSLT 并不是很流行。目前的主流还是由服务器运行模板引擎。

在 MVC 架构中,模板引擎包含在服务器端。控制器得到用户请求后,从模型获取数据,调用模板引擎。模板引擎以数据和页面模板为输入,生成 HTML 页面,然后返回给控制器,由控制器交回客户端。

==ejs 是模板引擎的一种,它使用起来十分简单,而且与 express 集成良好。==

我们通过以下两行代码设置了模板文件的存储位置和使用的模板引擎:(app.js文件中进行的设置)

说明:

ejs 的标签系统非常简单,它只有以下三种标签:

<% code %>:JavaScript 代码。 <%= code %>:显示替换过 HTML 特殊字符的内容。(也就是说如果code中有标签,则会原样输出,不会让浏览器解析) <%- code %>:显示原始 HTML 内容。(如果有a标签,在浏览器端这则会看到一个超链接)

路由代码:

则生成的代码:

标签: node和javascript

本文链接地址:https://www.jiuchutong.com/biancheng/377890.html 转载请保留说明!

上一篇:详解NodeJS框架express的路径映射(路由)功能及控制(nodejs orm框架)

下一篇:nodejs开发——express路由与中间件(nodejs开发文档)

  • 北京市增值税发票查验平台
  • 小规模可以申请出口退税吗
  • 计提企业所得税会计科目
  • 外贸出口备案需准备什么资料
  • 贴现率与现值系数的关系
  • 营业外收入在资产负债表怎么填
  • 处置全资子公司税务处理
  • 增值税的附加
  • 清洁费免税吗
  • 所得税汇算清缴扣除标准
  • 建筑施工企业开立临时账户
  • 小规模纳税人按什么标准纳税
  • 技术服务税票
  • 收到个税手续费返还现金流量表
  • 网上申请的增值税专用纸质发票收到后如何确认已收到
  • 固定资产被替换部件的会计处理
  • 如何检验发票真伪
  • 关联企业之间的咨询费
  • 期间费用的研究费用填什么
  • 小规模纳税人代理销售税率是多少
  • 净资产收益率公式推导
  • 冲回坏账
  • rtx3090 rtx titan
  • 如何解决win10系统复制文件速度
  • 小规模纳税人没有进项税
  • 投资性房地产减值准备属于什么科目
  • php 数组定义
  • 在建工程进项税可以抵扣吗
  • postman如何设置token
  • 运输合同印花税税率
  • phpstrcmp函数
  • php使用while循环计算1到100的和
  • 发行债券的会计分录摊销
  • 自然人税收系统换电脑怎么同步数据
  • 一点分享案例
  • php常用工具
  • php curl_exec
  • 帝国cms app
  • 滴滴打车老板起源故事
  • 主播工资不发
  • 金融资产减值的三个阶段
  • phpcms v9 getshell
  • js调用自己
  • sql2000日志清理
  • 企业所得税计提的准备金可以扣除吗
  • 设计部工资计入哪个科目
  • 合理损耗应计入成本吗
  • 接待客户的住宿费进项税能否抵扣
  • 产品加工总是会出现问题的,100%合格是不可能的
  • 装修费用是当月支付吗
  • 收到第三方补助怎么做账
  • 什么服务费发票可以免税的
  • 普通发票作废的金额会扣税吗
  • 银行对账单上借贷方什么意思
  • 补价占整个交易金额的比例
  • 会计处理是会计分录吗
  • mysql远程用户登录
  • sqlserver1053怎么解决
  • Win7 64位旗舰版系统打开应用程序提示“发生未知的软件异常0xc06d007e”的解决方法
  • 下载win10 32位
  • 卸载软件后整个盘都清空了
  • xp系统停止服务了还能用吗
  • Aero glass for win8.1开启aero透明磨砂效果图文教程
  • win7系统玩游戏怎么样
  • win7如何卸载打印机驱动程序
  • unity角色系统
  • js深度拷贝的方法
  • android学习路线
  • awk入门
  • 台湾 游戏论坛
  • unity androidx
  • windows,linux
  • 委托代征管理办法最长有效期
  • 陕西地税发票怎么重新打印
  • 车辆购置税和消费税
  • 国家税务总局监控的重点税源纳税人的标准是
  • 酒店行业区分小巨头企业
  • 仓储用地和物流用地划分
  • 黑龙江省税务培训网官网
  • 深圳国税局网站如何查询企业往年财务报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设