首页 > 编程语言 >【JS】node.js初探

【JS】node.js初探

时间:2023-02-06 21:12:53浏览次数:62  
标签:node Web JS Apache js Node 页面

原本只是为了方便在VSCode中调试JS代码安装了node.js,但最近看了许多关于 node.js 的文章,心血来潮打算用JS写写后端。

1. 理解node.js

懂一些 JavaScript 和开发 Node.js 应用是两回事儿

node.js 本质上是基于 Chrome V8 引擎的的 JavaScript 运行环境,而非编程语言。node.js 能做的事情很多,但最常用的还是作为 Web 服务器。

1.1 与常见的 Web 服务器区别

Apache就是静态网页服务器,就是将本地页面文件做一个网络映射,可以添加mod来扩展功能,例如php模块就扩展了基于php的CGI动态页面页面能力,代理模块就是成了代理服务器。

nginx同,不过更多主职于代理服务器。

tomcat就是一个Java Servlet容器,换个说法就是基于java的CGI动态页面服务器,静态页面只是一个附属功能。

node.js同样一个容器,换个说法就是基于JavaScript的CGI动态页面服务器,看上去静态页面不算是直接功能。

1.2 与 PHP 对比

理论上 node.js 是可以像 Apache 一样在上面运行 PHP 的,两者并不是同一个层次的概念。但为了便于理解,可以拿最简单的 hello world 程序来进行比较。

用PHP写一段 Hello World:

1. 安装 web 服务器程序(如:Apache)

2. 安装 PHP 引擎,并在 Apache 中进行相应配置

3. 在 web 目录(DocumentRoot)下新建文件 index.php,输入以下代码:

<?php
    echo 'Hello World!';
?>

 4. 启动 Apache,访问 localhost/index.php

而 node.js 的流程相对简单一些(但代码更长一些),安装 node.js 后,在任意位置新建文件 server.js,输入代码:

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World!');
}).listen(3000, '127.0.0.1');

使用 node 命令执行该文件,访问 127.0.0.1:3000 即可

注意到尽管上面的 server.js 能够响应浏览器的请求返回一个(纯文本)文档,但连路由的功能都没有,也无法对 HTTP 动词(GET、POST)做出反应。

手工造一堆轮子明显不现实,还是从一个好的 Web 框架开始吧。

参考

2. Express框架

Express.js 是最早出现的 node.js 框架,到现在依然很流行。它以类似洋葱的顺序调用中间件,没有模块和 MVC 的划分,适合小型的服务。

学习可以参考:

标签:node,Web,JS,Apache,js,Node,页面
From: https://www.cnblogs.com/victorique-de-blois/p/17094203.html

相关文章

  • anularjs的select回显
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="https://cdn.bootcss.com/angular.js/1.4.6/angular.min.js"......
  • angularjs中日期的回显
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="https://cdn.bootcss.com/angular.js/1.4.6/angular.min.js"......
  • json串的使用与操作
    在controller中从后台数据库取出的json信息,怎样获取和怎么遍历?1.param中的信息用用result[0]还是result?想了很久,后来发现是你付处理信息数输出一个对象还是对个对象的问......
  • nodejs中aes-128-cbc加密和解密
    和java程序进行交互的时候,java那边使用AES128位填充模式:AES/CBC/PKCS5Padding加密方法,在nodejs中采用对应的aes-128-cbc加密方法就能对应上,因为有使用向量(iv),所以nodejs中......
  • Js实现Map对象的代码
    <scripttype="text/javascript"><!--/***@author:丸子*@date:2011-1-8*map对象类,提供了put,get,remove,size,isEmpty等方法*/functionMap(){/***构......
  • SpringBoot响应Json数据乱码通过配置解决
    场景实现把SpringBoot的response编码设置为utf-8找到application.properties配置文件添加如下:#设置响应为utf-8spring.http.encoding.force-response=true 再次刷新浏览器......
  • Swift 4 JSON 解析指南
    Apple终于在Swift4的Foundation的模块中添加了对JSON解析的原生支持。虽然已经有很多第三方类库实现了JSON解析,但是能够看到这样一个功能......
  • Python-字符串str和json格式的转换
    我是精神抖擞王大鹏,不卑不亢,和蔼可亲~计算机硕士,目前小米大数据开发。日常会分享总结一些自己面试实际问题的回答,欢迎一起讨论。公众号:diting_dapengstr转jsonstr转换为js......
  • python的dict和json的区别
    在工作中经常用到数据传输,而数据传输用的是json字符串,那么这个形如字典dict的json,和json又有什么区别呢?区别Python的字典是一种数据结构,JSON是一种数据传输格式。json就......
  • Prometheus Node_exporter增加认证
    背景因安全需要,现在对node_exporter进行配置以支持TLS和BasicAuth,顺便把Prometheus升级到最新版2.40.4Node_exporter1.0以上版本才支持TLS和BasicAuth......