合同中,request和require都是“要求”的意思,不过request更偏重于“请求”,翻译英到中时遇到这两个词问题不大,翻译出它们的意思就可以,但是中译英时就要注意了,这是我今天要强调的重要区别...2require We shall fulfill our obiligations as required by law. 我们应当根据法律的要求履行自己的义务。
EMCAScript规范 javascript语言实现,ES6规范(使用babel编译器将es6转换为es5,webpack只支持部分es6): import "jquery"; /...default只有一个,export可以有多个 commonjs规范 nodejs语言实现 require("module"); require("...../file.js"); //require返回对象 object exports.doStuff = function() {}; module.exports = someValue; 浏览器不兼容...nodejs,需要通过browserify工具转换为浏览器支持js (例如:browserify main.js > compiled.js): 浏览器不兼容nodejs的几个模块 module exports...require global AMD(异步加载模块,npm中requirejs模块) require同步==》异步require([module], callback); //由require.js
('webpack'); var Html = require('html-webpack-plugin'); module.exports = { // __dirname是nodejs里的一个全局变量...在CommonJS中使用require进行模块导入 module.exports = { add: func() } const addFun = require('....使用它来提取公共模块 var webpack = require('webpack'); module.exports = { entry:{ main1:'....// 在require bundle时,浏览器会加载它 var waitForChunk = require("bundle!..../file.js"); // 等待加载,在回调中使用 waitForChunk(function(file) { // 这里可以使用file,就像是用下面的代码require进来一样
虽然我们学习过ES6的模块化但是ES6与NodeJS使用不同的模块化规范,单独学习NodeJS的模块化非常有必要。 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。...(2)、导入自定义的模块时路径需要以./或../开始,同一路径下也不能省略。 (3)、如果反复多次require模块,只加载一次。...(7)、使用exports或module.exports对象可以将当前模块中需要导出的内容暴露出去。.../m1"); console.log(a); console.log(fun()); 结果: 1.3、NodeJS中使用CommonJS模块管理 CommonJS的核心思想就是通过 require 方法来同步加载所要依赖的其他模块...require()导入第三方包时,就是从这个目录中查找并加载包。
,这里记录下解决问题的过程一、背景 crawlab 官方文档的scrapy 爬虫爬取的结果可以在任务栏的数据那里看到,但是官方没有指引nodejs如何达到类似的成果。...这对使用nodejs在crawlab上写爬虫的同学非常不友好。图片 nodejs要支持这样的效果,需要先分析crawlab爬虫任务完成后,具体是怎么写入数据库的。...然后我们访问http://服务器ip:8081 就可以看到mongodb里面的数据了,记得要开启对应端口的防火墙三、分析爬虫结果如何插入数据库图片图片图片图片上图列举的爬取的数据在数据库里如何存储,省略了部分细节...将爬虫爬取的结果存储到步骤2的结果集里四、使用nodejs完成数据库插入 打印nodejs执行的时候都环境变量,可以看到当前的任务id和Mongodb数据库的各种链接参数图片 那我们要做的事情就很简单了...} = require('..
之前在mongodb搞了个免费的512MB的mongodb数据库,刚好今天要搭建一个nodejs项目需要的数据库是mongodb,项目里的数据库连接的是本地localhost,因为是第一次接触nodejs...mongo-tools,最终完美连接并导入。...Node.js连接远程mongodb代码 const mongoose = require('mongoose'); const db = mongoose.connect("mongodb+srv:/...数据库失败:" + error.message) } else { console.log("连接远程mongo数据库成功") } }); module.exports...数据库失败:" + error.message) } else { console.log("连接本地mongo数据库成功") } }); module.exports
属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件。...webpack.config.js: const path = require('path'); module.exports = { entry: '....通过require() 使用插件,然后把它添加到 plugins 数组中。多数插件可以通过选项(option)自定义。...= { mode: 'production'//通过选择 development(开发) 或 production(生产),启用相应模式下的 webpack 内置的优化 }; 二、安装 (1)安装nodeJs...webpack 命令行接口(CLI)(应该编写自己的命令行接口(CLI),或使用 --env)时,访问命令行接口(CLI)参数 导出不确定的值(调用 webpack 两次应该产生同样的输出文件) 编写很长的配置
当 b 被覆盖时,b 指向了一块新的内存,a 还是指向原来的内存,所以最后两个输出不一样。 同理 exports 是 module.exports 的引用。...当 module.exports 属性被一个新的对象完全替代时,也会重新赋值 exports 如果你觉得用不好可以只使用module.exports Event Loop event loop是一个执行模型...NodeJS的Event Loop是基于libuv实现的。可以参考 Node 的官方文档以及 libuv 的官方文档。...node的mongoose模块中,项目中有如下代码: 如何实现的呢?...(`${config.mongo.url}${config.mongo.database}`); return mongoose.connection; } mongoDBConnect()
我们可以使用定义模块中,module.exports对象所有的属性与方法 }); 优点: 依赖就近,延迟执行 很容易在node中运行 缺点: 依赖SPM打包,模块的加载逻辑偏重.../file.js"); 优点: 服务器端便于重用 NPM中已经将近20w个模块包 简单并容易使用 缺点: 同步的模块方式不适合不适合在浏览器环境中,同步意味着阻塞加载,浏览器资源是异步加载的 不能非阻塞的并行加载多个模块...实现:node.js nodejs中,原生已经实现了模块化,已经不需要导入第三方库了,可以直接require() 服务器端与浏览器端的技术选型?...module.exports = ... }) 启动模块 seajs.use 加载入口模块,我们把define定义的js就叫模块 这个用于在html代码里面的加载 seajs使用的时候,可以先在配置文件中...我们可以使用定义模块中,module.exports对象所有的属性与方法 }); //seajs.use 和 Document 的 ready 没有任何关系 //要想保证 文档结构加载完毕再执行你的
/path/to/my/entry/file.js' }; 出口(output) output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ....你可以通过在配置中指定一个 output 字段,来配置这些处理过程: webpack.config.js const path = require('path'); module.exports =...2.use 属性,表示进行转换时,应该使用哪个 loader。...这告诉 webpack 编译器(compiler) 如下信息: “嘿,webpack 编译器,当你碰到「在 require()/import 语句中被解析为 ‘.txt’ 的路径」时,在你对它打包之前,...想要使用一个插件,你只需要 require() 它,然后把它添加到 plugins 数组中。多数插件可以通过选项(option)自定义。
代码示例: // weboack.config.js module.exports = { entry: './path/to/entry/file.js' } 2....() 或 import 语句时,在它打包之前,先使用 raw-loader 转换。.../path/to/entry/file.js' } } // 可简写为如下形式 module.exports = { enrty: '..../path/to/enrty/file.js' } /* * 当你需要为只有一个入口的应用程序或工具(library)快速设置 webpack 配置时, * 简写会是个很不错的选择。...当打包模块时,webpack 使用 enhanced-resolve 来解析文件路径。
我的目标是帮助读者在看到它们时认出它们 CJS CJS 是 CommonJS 的缩写。经常我们这么使用: // importing const doSomething = require('..../doSomething.js'); // exporting module.exports = function doSomething(n) { // do something } 很多人可以从.../some/local/file.js') 或者 var React = require('react'); ,都可以起作用 当 CJS 导入时,它会给你一个导入对象的副本 CJS 不能在浏览器中工作。...这里[5]可以找到更多的模式 当使用 Rollup/Webpack 之类的打包器时,UMD 通常用作备用模块 ESM ESM 代表 ES 模块。...参考 basic js modules[11] CJS in nodejs[12] CJs-ESM comparison[13] On inventing JS module formats and
NodeJS模块化开发时,遵循CommonJS规范的情况下导出模块使用的对象 module是NodeJS给js模块提供的一个内置对象,一般指代的当前js文件/模块 module对象中包含了一个对象exports...用于导出数据;同时NodeJS为了方便数据的导出操作,通过引用赋值的方式将module.exports赋值给exports,可以使用exports导出数据;具体使用时需要注意模块实际导出数据使用的依然是...module.exports,所以在这两个关键词混合操作时注意导出数据的有效性问题!...= {version,} 4、http模块如何创建并启动一个web服务?...IPv4和使用十六进制表示的IPv6,现阶段主流IP地址主要是IPv4,IPv6地址已经开始部署使用,但是软件开发时依然没有作为主要的参考地址 端口:全称Port,数据通信端口,描述了一台计算机上可以安装很多软件
因为 webpack 配置是标准的 Node.js CommonJS 模块,你可以使用如下特性: 通过 require(...) 导入其他文件 通过 require(...) ...例: const path = require('path'); module.exports = { entry: '....想要使用一个插件,你只需要 require() 它,然后把它添加到 plugins 数组中。多数插件可以通过选项(option)自定义。...通常将这些 ID 存储在内存中(例如,当使用 webpack-dev-server 时),但是也可能将它们存储在一个 JSON 文件中。...webpack-dev-server 支持热模式,在试图重新加载整个页面之前,热模式会尝试使用 HMR 来更新。查看如何实现在 React 项目中使用 HMR 为例。
在配置文件中指定其他文件时,例如: module.exports = { entry: '..../path/to/my/entry/file.js' }; Output output属性告诉webpack在哪里输出打包好的文件,以及如何命名这个文件。默认情况下是....这就好像告诉webpack编译器说: ”Hi,webpack编译器,当你发现任何后缀为.txt的文件时,请使用raw-loader先转换一下,然后再把转换后的内容添加到打包文件中。...想使用一个插件,只需要通过require()这个插件,然后在plugins数组中添加这个插件。大多数的插件,都是支持修改配置的。...因为webpack需要import()和require()。如果需要支持老版本浏览器,可以使用loader解决。 ---- 以上就是webpack的核心概念。
下面是使用 MongoDB/Mysql 的适配器创建一个数据库连接的配置 MongoDB: 1 var mongoAdapter = require('sails-mongo'); 2 var wlconfig...//localhost/waterline-sample' 12 } 13 } 14 }; sails-mongo 为mongo的适配器,执行命令安装: npm i sails-mongo...但要注意,指定属性的字段时,使用的是一个字符串值,而不是 JavaScript 中的具体类型,目前支持的数据类型有 string / text / integer / float / date /time...: 21 }) .limit(100) .sort('name') .exec(function(err, users) { // Do stuff here }); 下面的修饰符可用于构建查询时使用...,目前用nodejs写了一个爬虫,使用waterline存储数据到mysql,已经部署到服务器上,使用pm2运行,抓取数据用的是superagent,后面我会继续写如果用nodejs写爬虫,欢迎关注!
基础使用: module.exports = { entry: '..../path/to/my/entry/file.js' // 默认可配置一个路径字符串 }; 进阶使用: 字符串:默认普通路径字符串./src。...= require('path'); module.exports = { entry: '....' } }; 进阶使用: 当配置了多入口文件并且想输出不同chunk时应该对filename使用占位符来保证文件名称的唯一性。...清理和测试(Linting && Testing) mocha-loader 使用 mocha 测试(浏览器/NodeJS) eslint-loader PreLoader,使用 ESLint 清理代码
/yourpath/file.js' }; module.exports = config 上面的是以下的简写: const config = { entry: { main: '..../yourpath/file.js' } }; module.exports = config 多文件入口 对entry采用对象写法,指定对应的键值对,为了输出这多个文件可以使用占位符 const...= config; Loader Loader可以在加载模块时预处理文件,类似于gulp中的task。.../css/main.css' 允许加载图片 需要使用file-loader,首先安装: npm i file-loader --save-dev 使用: const path = require('path.../dist' } }); module.exports = config; webpack.prod.js const merge = require('webpack-merge'); const
/path/to/my/entry/file.js' }; 五、出口(output) 出口(output)即告诉 webpack 经过各种 loader 处理后的文件应该生成到哪个目录下,也就是生成文件所在的地方...同样,需要显示的告诉 webpack 的配置文件(webpack.config.js): const path = require('path'); module.exports = { entry...要使用一个插件,需要先 require 它,然后把它添加到 plugins 数组中。多数插件可以通过选项(option)自定义。...也可以在一个配置文件中因为不同目的而多次使用同一个插件,这时需要通过使用 new 操作符来创建它的一个实例。...const HtmlwebpackPlugin = require('html-webpack-plugin'); // 通过 npm 安装 const webpack = require('webpack
但是随着现代浏览器的发展,特别是nodejs的出现,js可以做的事情变得越来越多也越来越复杂。于是我们就需要模块系统来组织不同用途的脚本,进行逻辑的区分和引用。...CommonJS和Nodejs CommonJS是由Mozilla公司在2009年1月份提出来了。没错,就是那个firfox的公司。...CommonJS最主要的应用就是服务端的nodejs了。浏览器端是不直接支持CommonJS的,如果要在浏览器端使用,则需要进行转换。...CommonJS使用require()来引入模块,使用module.exports来导出模块。 我们看一个CommonJS的例子: require("module"); require("...../file.js"); exports.doStuff = function() {}; module.exports = someValue; 注意,CommonJS是同步加载的。
领取专属 10元无门槛券
手把手带您无忧上云