标签: NodeJs

温酒 | 2024-06-05 | 前端相关NodeJs

什么,你连一个Node.js脚本都不会写!!!

没有一个会的 在晨会上,我要求我的团队成员小林编写一个 Node.js 脚本,自动化地将组件库 components 文件夹中的组件按以下格式在根目录的 index.ts 文件中导出: export { default as BasicTable } from './BasicTable'; 他有些为难地看着我说:“这个Node.js没学过,不会,要不要让其他人做?” 我扫视了一圈,没有得到回应,于是我一个一个点名,结果没有一个人表示能够完成,都说不熟悉Node.js。我感到困惑,毕竟他们作为有五六年前端经验的团队成员,连一个简单的 Node.js 脚本都不会写! 不要过度神秘化 Node.js 脚本 有些人可能会误解 Node.js 脚本,认为它是用 Node.js 编写的。他们可能会觉得如果不懂 Node.js 的语法就无法编写 Node.js 脚本,感觉会写 Node.js 脚本就很神秘。实际上

 307 |  1 |  0 前端相关NodeJs

大牛猫 | 2024-04-26 | 前端相关NodeJs

3 个超酷的 Node.js 新功能!

介绍下 Node.js 近期更新的 3 个功能,每个都很实用哦! 1. 自带 热更新 开发模式下,每次代码的修改我们期望无需重启代码即可看到最新的变化, nodemon 模块在这个场景已经是标配功能了。 有时只是写一个简单的脚本,做些测试或其它场景可能不太需要第三方模块,此时 Node.js “自带热更新” 功能就再合适不过了! 一个 --watch 标志搞定这个场景。该标志首次添加于 Node.js v18.11.0,当前处于试验性状态。 执行命令 node --watch test.mjs 看到如下结果: 将输出结果 a 修改为 b 后,无须手动重启进程,可看到文件已自动刷新重启。 2. 内置环境变量支持 Node.js 21.7.0 版本增加了...

 279 |  0 |  0 前端相关NodeJs

追风少年 | 2024-03-04 | 前端相关NodeJs

NodeJs进阶开发、性能优化指南

相信对于前端同学而言,我们去开发一个自己的简单后端程序可以借助很多的 nodeJs 的框架去进行快速搭建,但是从前端面向后端之后,我们会在很多方面会稍显的有些陌生,比如 性能分析 , 性能测试 , 内存管理 , 内存查看 , 使用C 插件 , 子进程 , 多线程 , [Cluster]()模块 , 进程守护管理 等等 NodeJs 后端的知识,在这里为大家来分析一下这些场景与具体实现。 搭建基础服务 首先我们先来实现一个简单的 Http服务器 ,为了演示方便这里我们使用 express ,代码如下: const fs = require('fs') const express = require('express') const app = express() app.get('/', (req, res) =  {   res.end('hello world') }) app.get('/index', (req, res) =  {   const file = fs.rea

 291 |  0 |  0 前端相关NodeJs

雪千寻 | 2024-01-03 | NodeJs

NodeJs进阶开发、性能优化指南

相信对于前端同学而言,我们去开发一个自己的简单后端程序可以借助很多的 nodeJs 的框架去进行快速搭建,但是从前端面向后端之后,我们会在很多方面会稍显的有些陌生,比如 性能分析 , 性能测试 , 内存管理 , 内存查看 , 使用C 插件 , 子进程 , 多线程 , [Cluster]()模块 , 进程守护管理 等等 NodeJs 后端的知识,在这里为大家来分析一下这些场景与具体实现。 搭建基础服务 首先我们先来实现一个简单的 Http服务器 ,为了演示方便这里我们使用 express ,代码如下: const fs = require('fs') const express = require('express') const app = express() app.get('/', (req, res) =  {   res.end('hello world') }) app.get('/index', (req, res) =  {   const file = fs.rea

 554 |  0 |  0 NodeJs

大牛猫 | 2023-11-21 | 前端相关NodeJs

53道常见NodeJS基础面试题

说到前端就不得不提到后端,我们给用户展示页面所需的数据正是从后端获取的,所以了解后端的运行原理和技术的实现很有必要。 Node. js是一个不错的选择,它是基于JavaScript语法的一套服务器端(后端)语言。想要在企业中做得更好,开发者需要更多地了解它,并掌握它的有关用法。 1、你了解 Node. js吗? Node. js是一个基于 Chrome v8引擎的服务器端 JavaScript运行环境;Node. js是一个事件驱动、非阻塞式I/O的模型,轻量而又高效;Node. js的包管理器npm是全球最大的开源库生态系统。 2、Node. js的使用场景是什么? 高并发、实时聊天、实时消息推送、客户端逻辑强大的SPA(单页面应用程序)。 3、为什么要用 Node. js? 原因如下。 (1)简单, Node. js用 JavaScript、JSON进行编码,简单好学。 (2)功能强大,非阻塞式I/O,在较慢的网络环境中,可以分块传输数据,事件驱动,擅长高并发访问。 (3)轻量级, Node. js本身既是代码又是服务...

 416 |  0 |  0 前端相关NodeJs

大牛猫 | 2023-10-20 | 前端相关NodeJs后端相关

大厂为啥都要用Node去写中间层(BFF)呢?

BFF是一种Web架构,全名为Backends For Frontends,即为服务于前端的后端。这个词来源于Sam Newman的一篇文章:Pattern: Backends For Frontends ^[1]^ 。BFF一般指的是在前端与后端之间加增加一个中间层。为什么要在前端和后端之间增加一个BFF层呢? 计算机科学家David Wheeler曾经说过一句话: All problems in computer science can be solved by another level of indirection. 计算机科学中的所有问题都可以通过加一层来解决。 因此,需要使用BFF的场景,肯定是普通的前后端开发模式遇到了部分问题。 例如在Sam Newman的文章中就描述了BFF解决多个展示端的场景。 多端展示问题 在系统一开始开发的时候只考虑了PC网页端的设计,服务器端API是为了PC网页端而服务的。但是后来随着移动互联网的兴起,移动端开始流行,决定在原有服务端的基础上开发移动端App,复用之前的API,但是原有API是为了PC端设计的,并不符合移动端的...

 593 |  0 |  0 前端相关NodeJs

晴天 | 2023-10-16 | 前端相关NodeJs

前端页面秒开的关键 - 小白也能看懂的同构渲染原理和实现

大概在昨年下半年,我利用同构渲染技术,把公司中一个需要7、8秒才能打开的vue3项目成功优化至秒开(当然除了同构之外也配合了一些其他手段),由于那段时间vue3推出不久,很多框架这部分功能还没有跟上,我便试着用vue和vite本身提供的api来完成同构,最终也了令人满意的效果,自己在这个过程中也获益匪浅。 如今各大框架的功能已经完善,如果你现在想做同构渲染,我推荐直接使用next.js(react)或nuxt.js(vue)来进行开发,而不是像我一样手动进行实现。本文主要是对于同构原理的描述,不涉及框架的使用。 为了让小白也能看懂,文章会包含很多特别基础的理论描述,如果觉得没必要了解,你可以通过标题跳转到自己感兴趣的部分。文章中的代码主要以vue为例,但是原理不局限于任何框架。 点击这里查看完整代码和PPT^[1],详细地址在文末^ 1. 什么是同构渲染?为什么使用它? 1.1 什么是渲染? 以现在前端流行的react和vue框架为例。react中的jsx和vue里面的模板,都是是无法直接在浏览器运行的。将它们转换成可在浏览器中运行的html,这个过程被称为...

 952 |  0 |  0 前端相关NodeJs

蔡文姬 | 2023-08-21 | 前端相关NodeJs

5 种高级 NodeJS 技术

作为开发人员,我们都致力于打造高效、健壮且易于理解、修改和扩展的代码库。 通过采用最佳实践和探索先进技术,我们可以释放 NodeJS 的真正潜力并显着提高应用程序的质量。 在这篇文章中,我们将重点介绍 NodeJS 的五种高级技术。 所以,系好安全带,我们要开车了,准备好探索它们吧。 1.添加中间件 不要将中间件添加到每个路由,而是使用 use 方法将其添加到路由列表的顶部。 这样,中间件下面定义的任何路由都会在到达各自的路由处理程序之前自动通过中间件。 const route = express.Router(); const {login} = require("../controllers/auth"); route.get('/login', login) // isAuthenticated is middleware that checks whether // you are authenticated or not // // ❌ Avoid this: middleware on each route route.get('/pr

 404 |  0 |  0 前端相关NodeJs

温酒 | 2023-08-17 | 前端相关NodeJs

【NestJS系列】核心概念:Providers提供者

前言 Providers 是 Nest 中的一个基本概念,许多 Nest 中定义的类都可以被视为一个 Provider ,比如:service、repository、factory、helper等,它们都可以通过 constructor 注入依赖关系,这就意味着类与类之间可以创建各种依赖关系,并且维护各个类之间依赖关系的工作将委托给 Nest 运行时系统。 Provider类(service)基本用法 前面几章我们通过 nest-cli 生成的代码中就包含有 service 类 比如: // nanjiu.service.ts import { Injectable } from '@nestjs/common'; import { CreateNanjiuDto } from './dto/create-nanjiu.dto'; import { UpdateNanjiuDto } from './dto/update-nanjiu.dto'; @Injectable() export class NanjiuService {   c

 405 |  0 |  0 前端相关NodeJs

晚风 | 2023-08-16 | 前端相关NodeJs

【NestJS系列】核心概念:Controller控制器

前言 控制器主要是用来处理客户端传入的请求并向客户端返回响应。 它一般是用来做路由导航的,内部路由机制控制哪个控制器接收哪些请求。 路由 为了创建基本控制器,我们需要使用 @Controller 装饰器,装饰器将类与所需元数据关联起来,并使 Nest 能够创建路由映射。 我们使用 nest-cli 快速创建一个REST API风格的完整CURD代码。 nest g resource nanjiu 在生成的nanjiu文件夹下,我们可以看到有 nanjiu.controller.ts 文件,代码如下: // nanjiu.controller.ts import { Controller, Get, Post, Body, Patch, Param, Delete, Query } from '@nestjs/common'; import { NanjiuService } from '

 440 |  0 |  0 前端相关NodeJs

晚风 | 2023-08-16 | 前端相关NodeJs

【NestJS系列】DI依赖注入与IOC控制反转

前言 上篇文章我们学习了如何使用 nest-cli 来快速生成一个 NestJS 后端项目,当我们打开编辑器查看代码时,会发现整个代码风格有点类似JAVA的 spring 框架,并且你会发现一些 service 类在 controller 控制器的 constructor 中注入后,可以不需要手动 new 就可以直接使用该类对应的实例方法。 比如: import { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; @Controller() export class AppController {   constructor(private readonly appService: AppService) {}   @Get('/hello')   get(): string {     return this.appService.getHello();   } } 这其实就是 Nest 依赖注入与控制反转,目的主

 399 |  0 |  0 前端相关NodeJs

石昊 | 2023-08-16 | 前端相关NodeJs

【NestJS系列】从Nest CLI开始入门

初识Nest JS Nest 是一个渐进的 Node.js 框架,它可以在 TypeScript 和 JavaScript (ES6、ES7、ES8)之上构建高效、可伸缩的企业级服务器端应用程序。 Nest 基于 TypeScript 编写并且结合了 OOP(面向对象编程),FP(函数式编程)和 FRP (函数式响应编程)的相关理念。在设计上的很多灵感来自于 Angular,Angular 的很多模式又来自于 Java 中的 Spring 框架,依赖注入、面向切面编程等,所以我们也可以认为: 「Nest 是 Node.js 版的 Spring 框架」 Nest 框架底层 HTTP 平台默认是基于 Express 实现的,所以无需担心第三方库的缺失。 NestJs 的核心思想:就是提供了一个层与层直接的耦合度极小,抽象化极高的一个架构体系。 脚手架 NestJS CLI 与其它框架一样,NestJS也有自己的脚手架,它可帮助我们快速初始化Nest项目以及开发和维护 Nest 应用程序。 安装 绝大多数人可能会选择全局安装,因为方便,但需要注意的...

 697 |  0 |  0 前端相关NodeJs

晚风 | 2023-05-14 | NodeJs

10大 Node.js 库可以帮助你优化代码和简化开发

Node.js 是一个功能强大且流行的 JavaScript 运行时环境,使开发人员能够构建高性能应用程序。Node.js 广泛用于构建服务器端 Web 应用程序和 API,以及创建命令行工具和桌面应用程序。 Node.js 拥有丰富的库和模块生态系统,可以帮助开发人员提高应用程序的性能并优化代码。在这篇文中,我们将探讨在 Node.js 中用于提高应用程序性能和优化的前 10 个库。 1.Lodash Lodash 是一个 JavaScript 实用程序库,它提供了一组用于处理数组、对象、字符串和其他数据类型的函数。Lodash 函数旨在针对性能进行高度优化,它们可以帮助提高 Node.js 应用程序的速度和效率。 示例代码: const _ = require('lodash'); const arr = [1, 2, 3, 4, 5]; const sum = _.sum(arr); console.log(sum); // 15 const data = [1, 2, 3, 4, 5]; const filteredData = _.filt

 546 |  0 |  0 NodeJs

蔡文姬 | 2023-05-10 | 前端相关NodeJs

再也不用手动改package.json的版本号

本文的起因是有在代码仓库发包后,同事问我“为什么package.json 里的版本还是原来的,有没有更新?”,这个时候我意识到,我们完全没有必要在每次发布的时候还特意去关注这个仓库的版本号,只要在发布打tag的时候同步一下即可,于是有了本文的实践。 node.js 部分,我们得有一个更改仓库代码的脚本留给ci执行 我们首先需要在工程目录中的 ./script/.. 目录下增加一个 update-version.js 脚本 //update-version.js const path = require('path'); const fs = require('fs'); const newVersion = process.argv[2].replace(/^v/, '');; // 获取命令行参数中的新版本号,并过滤v字头 if (!newVersion) {     console.log('请传入新版本号,版本号遵循semver规范 .eg: 1.0.0, 1.0.1, 1.1.0');     process.exit(1); } // 获

 538 |  0 |  0 前端相关NodeJs

晴天 | 2023-04-28 | NodeJs

推荐 10 个 yyds 的 Node.js 开源项目!

随着 Node.js 的不断发展,越来越多的优秀开源项目涌现出来,本文将推荐 10 个 yyds 的 Node.js 开源项目,通过学习这些优秀的 Node.js 开源项目,可以更好地掌握 Node.js 技术,并在实际开发中获得更好的体验和效果! 网易云音乐 API 一个基于 Node.js 的网易云音乐 API 服务。通过该项目,开发者可以方便地对网易云音乐进行各种操作,例如搜索歌曲、获取歌曲信息和评论、获取用户信息和播放列表等等。该项目提供了完整的文档供开发者参考,提供了超过250个接口。 Github: https://github.com/Binaryify/NeteaseCloudMusicApi 饿了么 API 一个基于 Node.js + MongoDB + Express + Mongoose + Vue + Element UI 的前后端分离的 Web 应用项目,是一个仿照饿了么的外卖点餐系统。...

 862 |  0 |  0 NodeJs