node.js和浏览器之间的区别

node.js是什么

Node.js是一种基于Chrome V8引擎的JavaScript运行环境,可以在服务器端运行JavaScript代码

Node.js 在浏览器之外运行 V8 JavaScript 引擎。 这使得 Node.js 非常高效。

浏览器如何运行js代码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

nodejs运行环境

在这里插入图片描述

在浏览器中,大部分时间你所做的是与 DOM 或其他 Web 平台 API(如 Cookie)进行交互。

当然,那些在 Node.js 中不存在。 你没有浏览器提供的 documentwindow 和所有其他对象。

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {//http 的 createServer() 方法创建一个新的 HTTP 服务器并返回它。
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');//关闭响应
});

server.listen(port, hostname, () => {//服务器设置为监听指定的端口和主机名。 当服务器就绪时,回调函数被调用,在这种情况下通知我们服务器正在运行。
  console.log(`Server isnow running at http://${hostname}:${port}/`);
  console.log(11);
   // console.log(window);//报错 ReferenceError: window is not defined
  console.log(document);//ReferenceError: document is not defined

});

console.log(window);//报错 ReferenceError: window is not defined 说明nodejs环境中无window

console.log(document);//报错 ReferenceError: document is not defined 说明nodejs环境中无document

在浏览器中,我们没有 Node.js 通过其模块提供的所有优秀 API,例如文件系统访问功能。

另一个很大的区别是在 Node.js 中你可以控制环境。 除非你正在构建一个任何人都可以在任何地方部署的开源应用,否则你知道你将在哪个版本的 Node.js 上运行该应用。 与浏览器环境相比,你无法自由选择访问者使用的浏览器,这非常方便。

另一个区别是 Node.js 同时支持 CommonJS 和 ES 模块系统(自 Node.js v12 起),而在浏览器中我们开始看到正在实现的 ES 模块标准。

实际上,这意味着你可以在 Node.js 中同时使用 require()import,而在浏览器中只能使用 import

V8 是为 Google Chrome 提供支持的 JavaScript 引擎的名称。 它是获取我们的 JavaScript 并在使用 Chrome 浏览时执行它的东西。 V8 提供了 JavaScript 执行的运行时环境。 DOM 和其他 Web 平台 API 由浏览器提供。

支持 Node.js 的引擎 V8

nodejs可以做什么

express、electron、restify框架

学习路径

js基础+nodejs内置api模块(fs、path、http)+第三方api模块(express、mysql等)

参考https://dev.nodejs.cn/learn/differences-between-nodejs-and-the-browser/

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js中设置浏览器缓存可以通过设置HTTP响应头来实现。以下是一种常见的设置浏览器缓存的方法: 1. 首先,你需要使用Node.js的HTTP模块创建一个HTTP服务器。可以使用以下代码创建一个简单的HTTP服务器: ```javascript const http = require('http'); const server = http.createServer((req, res) => { // 处理请求并发送响应 }); server.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 2. 在处理请求并发送响应的代码中,你可以设置响应头来控制浏览器缓存。以下是一些常用的响应头设置: - 设置Cache-Control头:Cache-Control头用于指定缓存的行为。例如,可以设置`Cache-Control: public, max-age=3600`来指定资源可以被公共缓存,并且在缓存中保留1小时。 ```javascript res.setHeader('Cache-Control', 'public, max-age=3600'); ``` - 设置Expires头:Expires头用于指定资源的过期时间。例如,可以设置`Expires: Wed, 21 Oct 2022 07:28:00 GMT`来指定资源在指定时间之后过期。 ```javascript res.setHeader('Expires', 'Wed, 21 Oct 2022 07:28:00 GMT'); ``` - 设置ETag头:ETag头用于指定资源的唯一标识符。浏览器可以使用ETag头来验证资源是否已更改。例如,可以设置`ETag: "abc123"`来指定资源的ETag。 ```javascript res.setHeader('ETag', 'abc123'); ``` 3. 根据你的需求,可以根据请求的URL或其他条件来动态设置响应头。例如,可以根据请求的URL来设置不同的缓存策略。 ```javascript if (req.url === '/static/css/styles.css') { res.setHeader('Cache-Control', 'public, max-age=86400'); // 缓存静态CSS文件1天 } else if (req.url === '/static/js/main.js') { res.setHeader('Cache-Control', 'public, max-age=604800'); // 缓存静态JS文件1周 } else { res.setHeader('Cache-Control', 'no-cache'); // 不缓存其他资源 } ``` 这只是一个简单的示例,你可以根据你的具体需求进行更复杂的设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值