node.js 快速笔记
npm的常用指令修改镜像源为淘宝镜像源npm install -g cnpm --registryhttps://registry.npm.taobao.org设置为默认源npm config set registry http://registry.npmjs.org查看npm配置信息npm config list查看所有包列表npm list [-g]安装npm模块npm install Module_name [-g]如安装web框架 expressnpm install Module_name卸载npm模块npm uninstall Module_name升级npm模块npm update Module_name查找npm模块npm search Module_name创建npm模块npm init查看指令帮助npm help command_namenpm install 的几种类型npm install :会把Module包安装到node_modules目录中不会修改package.json之后运行npm install命令时不会自动安装Modulenpm install –save:会把Module包安装到node_modules目录中会在package.json的dependencies属性下添加Module之后运行npm install命令时会自动安装Module到node_modules目录中之后运行npm install–production或者注明NODE_ENV变量值为production时会自动安装msbuild到node_modules目录中npm install –save-dev:会把Module包安装到node_modules目录中会在package.json的devDependencies属性下添加Module之后运行npm install命令时会自动安装Module到node_modules目录中之后运行npm install–production或者注明NODE_ENV变量值为production时不会自动安装Module到node_modules目录中使用原则:运行时需要用到的包使用–save否则使用–save-dev (dev表开发环境)。npm 全局安装及本地安装的却别如npm install webpack -g与npm install webpack却别在使用时全局安装使用时这时:$ webpack ...本地安装为:$ node_modules/.bin/webpackNode.js介绍Node.js 是一个事件驱动I/O或者事件驱动IO 服务端JavaScript环境Node.js 是单进程单线程应用程序Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。Node.js REPL(交互式解释器)Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境类似 Window 系统的终端或 Unix/Linux shell$ nodevarx0undefineddo{...x;...console.log(x: x);...}while(x5);x:1x:2REPL常用命令ctrl c - 退出当前终端。tab 键 - 列出当前命令.help - 列出使用命令.clear - 退出多行表达式.save filename - 保存当前的 Node REPL 会话到指定文件.load filename - 载入当前 Node REPL 会话的文件内容。Node.js EventEmitterNode.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列一个 net.Server 对象会在每次有新连接时触发一个事件 一个 fs.readStream 对象会在文件被打开的时候触发一个事件。 所有这些产生事件的对象都是 events.EventEmitter 的实例。如何使用// 引入 events 模块vareventsrequire(events);// 创建 eventEmitter 对象vareventEmitternewevents.EventEmitter();// 绑定一个匿名事件eventEmitter.on(bing_event,function(arg1,agr2){console.log(bing_event 事件被触发:arg1,agr2);});// 定义另一个事件处理方法varbing2_eventfunction(){console.log(bing2 事件被触发);eventEmitter.removeAllListeners(bing_event);console.log(所有监听bing_event的都移除了);}// 绑定一个已定义的事件处理方法到 bing_event中eventEmitter.on(bing_event,bing2_event);setTimeout(function(){eventEmitter.emit(bing_event,a1,a2);},1000);varlistenerNeventEmitter.listenerCount(bing_event);console.log(bing_event监听者数为listenerN);console.log(run end!);模块系统为了让Node.js的文件可以相互调用Node.js提供了一个简单的模块系统。一个文件就是一个模块该文件可能是 JavaScript 代码、JSON 或者编译过的C/C 扩展。// Hello.jsfunctionHello(){varname;this.setNamefunction(thyName){namethyName;}this.sayHellofunction(){console.log(Hello,my name is name);}}module.exportsHello;// index.jsvarHellorequire(./Hello);hellonewHello();hello.setName(Bing);hello.sayHello();console.log(demo end.);函数在JavaScript中一个函数可以作为另一个函数的参数。我们可以先定义一个函数然后传递也可以在传递参数的地方直接定义函数。Node.js中函数的使用与Javascript类似functionsay(msg){console.log(msg);}functionexec(sayFun,msg){sayFun(msg);}exec(say,hello js Function.);同样exec中的sayFun参数也可传递匿名函数.util实现对象继承(util.inherits)util.inherits(constructor, superConstructor) 是一个实现对象间原型继承的函数。varutilrequire(util);// 定义父类functionBaseObj(){this.namebaseObj;this.base1887;this.sayHellofunction(){console.log(Hello This is this.name);};}// 给父类添加定义原型方法BaseObj.prototype.showNamefunction(){console.log(this.name);};// 定义子类functionSubObj(){this.namesubObj;}// 使SubObj 继承 BaseObjutil.inherits(SubObj,BaseObj);varbaseObjnewBaseObj();baseObj.showName();baseObj.sayHello();console.log(baseObj);varsubObjnewSubObj();subObj.showName();//objSub.sayHello(); //这个方法无法输出会报错应该sayHello不是BaseObj的原型方法即不是通过BaseObj.prototype来定义的。console.log(subObj);注意SubObj 仅仅继承了BaseObj 在原型中定义的函数而构造函数内部创造的 base 属 性和 sayHello 函数都没有被 SubObj 继承。同时在原型中定义的属性不会被 console.log 作 为对象的属性输出。util.inspectutil.inspect(object,[showHidden],[depth],[colors]) 是一个将任意对象转换 为字符串的方法通常用于调试和错误输出。它至少接受一个参数 object即要转换的对象。showHidden 是一个可选参数如果值为 true将会输出更多隐藏信息。depth 表示最大递归的层数如果对象很复杂你可以指定层数以控制输出信息的多 少。如果不指定depth默认会递归2层指定为 null 表示将不限递归层数完整遍历对象。 如果color 值为 true输出格式将会以ANSI 颜色编码通常用于在终端显示更漂亮 的效果。特别要指出的是util.inspect 并不会简单地直接把对象转换为字符串即使该对 象定义了 toString 方法也不会调用。Node.js 文件系统异步的 fs.readFile() 和同步的 fs.readFileSync()varfsrequire(fs);// 异步读取fs.readFile(input.txt,function(err,data){if(err){returnconsole.error(err);}console.log(异步读取: data.toString());});// 同步读取vardatafs.readFileSync(input.txt);console.log(同步读取: data.toString());console.log(程序执行完毕。);Node.js GET/POST请求Get请求,如何获取表求的url信息varhttprequire(http);varurlrequire(url);varutilrequire(util);http.createServer(function(req,res){// 解析 获取url参数varparamsurl.parse(req.url,true).query;//true为解析为对象访问参数console.log(params);// 完成原生的urlconsole.log(req.url :req.url);// 获取干净的url不带参数varpathnameurl.parse(req.url).pathname;varreHtmlYour URL : req.url\n;reHtmlURL pathname : pathname\n;reHtmlURL Params :url.parse(req.url).query;res.writeHead(200,{Content-Type:text/plain; charsetutf-8});res.end(reHtml);}).listen(8888);console.log(server is running ...);Post请求如何获取body内容POST 请求的内容全部的都在请求体中http.ServerRequest 并没有一个属性内容为请求体原因是等待请求体传输可能是一件耗时的工作。比如上传文件而很多时候我们可能并不需要理会请求体的内容恶意的POST请求会大大消耗服务器的资源所以 node.js 默认是不会解析请求体的当你需要的时候需要手动来做。varhttprequire(http);varquerystringrequire(querystring);varpostHTMLhtmlheadmeta charsetutf-8titlePost 实现/title/headbodyform methodpost网站名 input namenamebr网站 URL input namevaluebrinput typesubmit/form/body/html;http.createServer(function(req,res){varbody;req.on(data,function(chunk){bodychunk;});req.on(end,function(){// 解析参数bodyquerystring.parse(body);// 设置响应头部信息及编码res.writeHead(200,{Content-Type:text/html; charsetutf8});if(body.namebody.url){// 输出提交的数据res.write(namebody.name);res.write(br);res.write(valuebody.url);}else{// 输出表单res.write(postHTML);}res.end();});}).listen(8888);console.log(server is running ...);

相关新闻

实战指南:三步构建绝区零全自动游戏助手

实战指南:三步构建绝区零全自动游戏助手

实战指南:三步构建绝区零全自动游戏助手 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 绝区零作为一款快节奏的…

2026/7/28 15:29:35 阅读更多 →
2026年香精香料行业PLM系统盘点:主流产品助调香与合规提效

2026年香精香料行业PLM系统盘点:主流产品助调香与合规提效

一、产业迭代提速:2026香精香料行业数字化现状与痛点1.1 行业数字化发展现状2026年上半年,国内香精香料行业依托生物合成、AI调香技术加速转型升级,向精细化、合规化方向发展。据中研产业研究院半年报数据,行业市场规模同比增长6.…

2026/7/28 15:28:35 阅读更多 →
低代码开发如何提升后端配置效率与实战技巧

低代码开发如何提升后端配置效率与实战技巧

1. 低代码开发如何让后端配置变得高效 早上十点半,同事看我悠闲地喝着咖啡,以为我又在摸鱼。殊不知,我已经用JNPF低代码平台完成了三个后端模块的配置。这种误解在传统开发模式下很常见——非技术人员往往看不到后台的代码逻辑,而…

2026/7/28 15:28:35 阅读更多 →

最新新闻

Claude Code与Codex深度对比:AI编程助手选型与实战指南

Claude Code与Codex深度对比:AI编程助手选型与实战指南

在AI编程助手领域,Claude Code和Codex无疑是当前最受瞩目的两个顶级选择。许多开发者在决定将哪个工具纳入自己的日常开发流时,常常陷入纠结:一个以强大的上下文处理和长会话记忆著称,另一个则以稳定的表现、高效的云任务委托和更…

2026/7/28 15:41:39 阅读更多 →
游泰安大佛寺

游泰安大佛寺

从这里看,泰山非常雄伟。注意这并不是主峰。大佛寺门口。龙华殿,弥勒菩萨。牵牛花:

2026/7/28 15:41:39 阅读更多 →
每日安全情报报告 · 2026-07-28

每日安全情报报告 · 2026-07-28

每日安全情报报告 2026-07-28 由 AI 整理发布 一、最新高危漏洞 1. CVE-2026-61511 — vBulletin 预认证远程代码执行 ⚠️ PoC 已公开 项目详情CVE 编号CVE-2026-61511漏洞类型代码注入(CWE-94,PHP eval() 注入)受影响组件vBulletin 6.x&…

2026/7/28 15:41:39 阅读更多 →
企业Agent走向业务深处:规模化落地的三道关口

企业Agent走向业务深处:规模化落地的三道关口

企业Agent正面临规模化落地挑战。麦肯锡2026年披露,全球62%的企业正在试验AI Agent,仅23%真正实现规模化部署。国内市场也处在相似的转折点。根据爱分析调研,中国56%的企业处于试点速赢阶段,只有13%进入全面推广阶段。企业管理层的…

2026/7/28 15:41:39 阅读更多 →
File-Based App开发:轻量级数据存储与MVP快速验证

File-Based App开发:轻量级数据存储与MVP快速验证

1. 项目背景与核心价值 File-Based App开发模式正在成为快速验证产品原型的利器。这种开发方式的核心在于将应用数据以文件形式存储在本地,而非依赖复杂的数据库系统。我在最近的一个电商类MVP项目中,仅用3天就完成了核心功能的开发和演示,这…

2026/7/28 15:41:39 阅读更多 →
spring基于xml配置文件和基于注解方式入门案例实现

spring基于xml配置文件和基于注解方式入门案例实现

1.基于xml方式 引入相关的jar包<!--springmvc需要的jar包--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.10.RELEASE</version></dependency><!--servl…

2026/7/28 15:40:39 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿&#xff01;3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑&#xff1a;把几百页的财报、法规、技术手册扔给向量库&#xff0c;问一个具体问题&#xff0c;搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了&#xff0c;要么藏在几十条结果的最下面。语义相似≠真正相关&#xff0c;这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营&#xff0c;从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候&#xff0c;每天刷半小时抖音&#xff0c;手动把爆款视频的口播敲进备忘录&#xff0c;一条2分钟的视频得花十来分钟&#xff0c;碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻