首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【学习笔记】黑马程序员Node.js全套入门教程 | 基础篇

/开头的相对路径,很容易出现路径动态拼接错误的问题。原因:代码在运行的时候,会队执行node命令所处的目录,动态拼接出被操作文件的完整路径。...该作用域防止全局变量污染的问题module对象每个.js自定义模块中都有一个module对象,它里面存储和当前模块有关的信息id,path,exports,parent,filename等...module.exports...为什么需要包由于Node.js 的内置模块仅提供一些底层的API,导致基于内置模块进行项目开发的,效率很低。包是基于内置模块封装出来的,提供更高级、更方便的API,极大的提高了开发效率。...npmnpm是Nodejs官方的包管理工具。初次装包完成后,项目文件夹下多一个叫做node_ modules的文件夹和package-lockjson的配置文件。...npm unpublish 删除的包,24小内不允许重复发布发布包的时候要慎重。尽量不要往npm上发布没有意义的包!⛄以上便是基础篇的全部内容,学习后能让你对NodeJS有一个大致的了解。

2.1K01
您找到你想要的搜索结果了吗?
是的
没有找到

关于ASP.NET MVC 项目本地vs运行响应时间过长无法访问解决方法!

今早来到公司本来准备写bug的,但是当我打开vs运行的时候发现今天的电脑响应的时间明显的要比之前打开网页调试的时间要长的多,到最后不但没有打开,而且还提示一个这样的问题!...如图:   这就蛋痛了,以前遇到这种的问题一般都是再发布项目到服务器上运行的时候才会出现的,但是谁知道我本地居然还会有这种情况,尴尬,我看到这里首先ping下我本地的locahost,结果结果让我大吃一惊...首先打开控制面板,然后双击进入网络和internet中: 然后点击系统和安全:点击进去window defender防火墙中: 进入后点击高级安全设置,进行防火墙设置,点击本机计算机的高级安全属性设置专用配置文件的入站规则为允许...: 假如这样还是不行的话那就直接关闭防火墙算了,其实我也不知道我们开发中防火墙对于我们来说到底是好还是坏的,因为我们开发的时候经常会有一些远程连接或者下载一些绿色文件之类的,但是有时候防火墙或限制我们的行为...,还是直接关闭的好!

1.1K20

前端项目启动 npm 安装 之 常见错误 意外解决 一直报 esbuild 的问题,使程序正常运行

通常要运行一个前端项目操作流程为: npm install (用于安装库,可以理解为初试化用的) npm start (启动项目) 1、 上面这两个为我们理想话的安装,实际上会遇到各种意想不到的bug...忽略此程序包的旧依赖性 npm清空缓存 npm cache clean --force 忽略此程序包的旧依赖性 npm install --legacy-peer-deps 当您npm 安装失败可以试试上面这两个...C:\Users\Administrator\AppData\Local\npm-cache\_logs\2021-01-05T06_28_01_397Z-debug.log 这个错误,通常我们运行node.../node_modules/esbuild/install.js就可以解决。但是,但是,就在前两天,我怎么运行这句话也解决不了,原因是什么呢,路径!路径!路径!...重要的点说3遍, 注意这个位置,一定要路径可以对的上,就Ok!多试试。。

2.8K40

深聊Nodejs模块化

Nodejs 上下文环境中提供一个 module 对象和一个 exports 对象,module 代表当前模块,exports 是当前模块的一个属性,代表要导出的一些 API。...我们 Nodejs 文件中所使用的 require 函数,实际上就是 Nodejs 项目中的 lib/internal/modules/cjs/loader.js 所定义的 Module.prototype.require...Nodejs 会查找 package.json 文件,使用 JSON.stringify 来解析 json,随后取出其 main 字段之后对文件进行定位,如果文件名缺少扩展的话,也会进入扩展名尝试环节。...如果 main 字段指定的文件名有误,或者压根没有 package.json 文件,那么 Nodejs 会将 index 当做默认文件名,随后开始尝试扩展名。...支持 ESM 加载方式的模块文件,所以使用 require 方法载入的时候会直接抛出错误 Nodejs 的 辅助函数模块 中,通过以下代码把 Module.

1.6K21

关于 JS 模块化的最佳实践总结

AMD 规范 CommonJS 规范主要是为服务器端的 NodeJS 服务,服务器端加载模块文件无延时,但是浏览器上就大不相同。AMD 即是为了浏览器宿主环境中实现模块化方案的规范之一。...sea.js 作为 AMD 规范的升级版,简化了使用方法,使用上更加方便,值得推崇。但是 sea.js 便是浏览器开发中最佳的模块化解决方案吗?未必,还要看是什么类型的项目,后面会讲到。...由于 CommonJS 规范的拷贝运行机制, lib.js 中使用 module.exports 输出的对象,是从 lib 模块内拷贝而得,当时 counter 的值是几,便拷贝几。...不,是指向被 incCounter 方法以闭包形式囊括的 counter 变量,这个变量是输出的模块对象的一部分。 CommonJS 规范的这个缺陷,有时候让程序很无奈,一不小心就写出了错误的代码。... NodeJS 开发项目中,Node9 已经支持 ES6 语法,完全可以使用 ES6 模块规范。

2.4K10

从 package.json 来聊聊如何管理一款优秀的 Npm 包

也许,你并不了解 Package.json 开始之前大家可以思考一个平常不过的小问题: Axios 大家或多或少都会使用过。它的一大特性即使支持双端(NodeJs 和 Web)端同时良好运行。...main、module 关于 main 以及 module 字段对于大家来说应该是非常常见了。 每当我们通过 npm install xxx 安装某个包,之后项目中引入该包。...不使用 exports 字段,我们可以通过 module 和 main 来进行区分,比如: "module": "./index-module.js", "main": "....,在运行 NodeJs 脚本可以通过 --conditions 标志添加自定义用户条件。...为了解决上述的问题,并且达到相对独立的需求。我们设计这样一种思路: 我们进行开发一个新的独立功能,往往都是会基于一个新的 feat/xxx-x 的独立分支来进行开发。

1.1K10

深入Node.js的模块加载机制,手写require函数

和module.exports干的事情并不复杂,我们先假设有一个全局对象{},初始情况下是空的,当你require某个文件,就将这个文件拿出来执行,如果这个文件里面存在module.exports,当运行到这行代码将...所以如果大家在看一些第三方库源码找不到入口就看看他package.json里面的main字段吧,比如jquery的main字段就是这样:"main": "dist/jquery.js"。.../b.js'); console.log(' main 中,a.done=%j,b.done=%j', a.done, b.done); 当 main.js 加载 a.js , a.js 又加载...: main加载a,a真正加载前先去缓存中占一个位置 a正式加载加载b b又去加载a,这时候缓存中已经有a,所以直接返回a.exports,即使这时候的exports是不完整的。...为了解决循环引用,模块加载前就会被加入缓存,下次再加载会直接返回缓存,如果这时候模块还没加载完,你可能拿到未完成的exports。 Node.js实现的这套加载机制叫CommonJS。

1.1K51

深度阐述Nodejs模块机制

Node启动这些模块就被加载进内存中,所以核心模块引入时省去了文件定位和编译执行两个步骤,并且路径分析中优先判断,因此核心模块的加载速度是最快的。文件模块则是在运行时动态加载,速度比核心模块慢。...若main属性指定文件名错误,或者没有pachage.json文件,Node会将index当作默认文件名。...4.尝试将require的参数作为一个包来进行查找,读取目录下的package.json文件,取得main参数指定的文件。5.尝试查找该文件,如果存在,则结束查找。如果不存在,则进行第3条查找。...静态加载时代码在编译的时候已经执行了,动态加载是编译后代码运行的时候再执行,那么具体点是什么呢?...下面的代码解决这个问题:delete require.cache[require.resolve('./server.js')];app = require('./server.js');

54620

这里有一份Node.js入门指南和实践,请注意查收

JS 是脚本语言,脚本语言都需要一个解析器才能运行。对于写在 HTML 页面里的 JS,浏览器充当了解析器的角色。而对于需要独立运行的 JS,NodeJS 就是一个解析器。...这样不仅解决 HTTP 原本比较难用的特性,也可以支持更多的 HTTP 应用. http.IncomingMessage 对象 IncomingMessage 对象是由 http.Server 或 http.ClientRequest...访问主模块 当 Node.js 直接运行一个文件,require.main 属性会被设置为 module 本身。...循环依赖 当 require()存在循环调用时,模块返回可能并不会被执行。...文件模块 当加载文件模块,如果按文件名查找未找到。那么 Node.js 会尝试添加.js 和.json 的扩展名,并再次尝试查找。如果仍未找到,那么会添加.node 扩展名再次尝试查找。

3.5K30

【漫游Github】无编译无服务器,实现浏览器的 CommonJS 模块化

我们面对的挑战 没有构建工具,直接在浏览器中运行使用了 CommonJS 的模块,其实就是要想办法完成上面提到的三项工作: •依赖分析•作用域隔离与变量注入•提供模块运行解决这三个问题就是 one-click.js...第一次加载模块文件,为模块文件提供一个 mock 的 require 方法,每当模块调用该方法,就可以 require 中知道当前模块依赖哪些子模块。...而 NodeJS 实现上其实就是用一个 wrap function 包裹了模块内的代码[7],我们都知道,function 会形成其自己的作用域,因此就实现隔离。...为了代码顺利运行,还提供一个简单的 require 方法来实现模块引用。 当然,上面这是一种解决方式,然而在 one-click.js 的目标下却行不通。...模块导出要解决的问题就是让主窗口能够访问子窗口中的模块对象。所以我们可以子窗口的脚本加载运行完后,将其挂载到主窗口的变量上。

94820

CommonJS

理论和实践总是相互影响和促进的,NodeJS能以一种比较成熟的姿态出现,离不开CommonJS规范的影响,同样,服务端,CommonJS能以一种寻常的姿态写进各个公司的项目中,也离不开NodeJS优异的表现...模块定义 出了引入的功能之外,上下文还提供exports对象,用于导出当前模块的方法或者变量,并且它是唯一导出的出口,模块中,还存在一个module对象,代表模块自身,而exports是module...的属性,NodeJS中,一个文件就是一个模块,将方法挂载exports对象上作为属性即可定义导出的方式: exports.add = function () { // …… }; 另一个文件中...NodeJS的模块实现 尽管规范中exports、require和module听起来十分简单,但是NodeJS实现它的过程中究竟经历什么,这个过程需要知晓: NodeJS中引入模块,需要经历如下三个步骤...如果main属性指定的文件名错误,或者压根没有package.json文件,NodeJS会将index当做默认文件名,然后依次查找index.js、index.json、index.node。

16410

Webpack前端技术类文章

module.exports = { // __dirname是nodejs里的一个全局变量 // 它指向的是我们项目的根目录 // 入口文件的位置 entry: __dirname +...= { // __dirname是nodejs里的一个全局变量 // 它指向的是我们项目的根目录 // 入口文件的位置 entry: __dirname + '/app/main.js output...= { // __dirname是nodejs里的一个全局变量 // 它指向的是我们项目的根目录 // 入口文件的位置 entry: __dirname + '/app/main.js output...= { // __dirname是nodejs里的一个全局变量 // 它指向的是我们项目的根目录 // 入口文件的位置 entry: __dirname + '/app/main.js output...= { // __dirname是nodejs里的一个全局变量 // 它指向的是我们项目的根目录 // 入口文件的位置 entry: __dirname + '/app/main.js output

1.5K30

后端实战教程:如何使用 Node.js 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)

创建 node.js App根目录创建 node.js 的项目文件夹mkdir nodejs-express-sequelize-mysql-kalacloudcd nodejs-express-sequelize-mysql-kalacloud...package.json 定义了当前项目所需要的各种模块以及项目配置信息(包含当前项目所需的开发和运行环境等信息)。...项目根目录 nodejs-express-sequelize-mysql-kalacloud 执行 npm 命令:npm install express sequelize mysql2 body-parser...运行 Node.js Express 服务器 node.js 服务器根目录,运行 node server.js图片控制台显示对数据库的读写,每当前端调用后端,这里就会给出对应后端操作了写什么的 log...但如果你只想专注解决实际问题,不想写代码,推荐使用卡拉云,卡拉云内置多种常用组件,无需懂前后端,仅需拖拽即可快速生成你需要的后台管理工具。

10.3K21

一杯茶的时间,上手 Node.js

可以 Node REPL 中尝试一下这些对象。...例如对于 myModule.js,刚才我们导出了 add 函数,因此出现在这个 exports 字段里面;而 main.js 没有导出任何内容,因此 exports 字段为空•parent 和 children...:用于记录模块之间的导入关系,例如 main.js 中 require myModule.js,那么 main 就是 myModule 的 parent,myModule 就是 main 的 children... require ,两者的区别就很明显: // 第一种导出方式,需要访问 add 属性获取到 add 函数 const myModule = require('myModule'); myModule.add...例如,之前构建一个项目需要非常复杂的命令,但是如果你实现一个 build npm 脚本,那么当你的同事拿到这份代码,只需简单地执行 npm run build 就可以开始构建,而无需关心背后的技术细节

97410

当creator遇上protobufjs|激情

解决IS_NODE的检查 之前源码中已经看到Util.IS_NODE是用来区分代码是运行nodejs上还是浏览器上。...小结 至此开始我才开始意识到直接加载大量proto文件的缺陷,细读protobufjs库的文档之后开始使用在项目尝试使用预编译的方式。...预编译js方式解决文件加载,但增加代码编译时间,creator中可以将编译的proto文件设置为插件,不参与编译,但文件多了也是很麻烦。...觉知开发中的痛点 protobuf的使用上,除了proto加载方案的选择外,还存在不少其它问题。 有项目使用json做协议,无需解码,客户端处理服务器响应逻辑比较方便。...javascript项目使用protobuf还有一个痛点就是IDE无法很好支持proto对象的代码补全,需要在代码与proto原文件中来回切换,不时出现单词拼写错误等问题。

75120

nodejs探秘:require加载模块的原理及代码实现

最近因为项目需要使用nodejs,因此不得不对其进行学习研究。一番深入后发现,nodejs除了好用,作为后台效率非常高之外,它自身的设计堪称精妙。.../my_module') my_module.log() 我们将上面代码运行后所得结果如下: this is my module 也就是它加载my_module代码,然后调用了其导出的函数log。...代码还需要注意的是,require采用了缓存功能,如果给定模块已经加载过了它就直接返回,这意味着无论模块代码中被加载多少次,它实际上只加载一次,以后每次遇到要requier它的时候,nodejs都会从缓存中直接将其返回...,版本也不同时就极容易出错,如果代码想加载模块a的1.01版本,但却错误加载成1.02版本,那么出现的错误将非常难以查找。...最后我们看看require加载如何解决循环依赖的。

85210
领券